0

В active_admin партиалом создана форма ввода информации:

<%= semantic_nested_form_for @item, :url => admin_items_path do |f| %>
  <fieldset class="inputs">
  <ol>
    <%= f.input :category %></br>
    <%= f.input :title  %>
  <%= f.input :photo1 %>
  <%= f.input :photo2 %>
</ol>
</fieldset>
  <%= f.fields_for :ItemColors do |i| %>
    <fieldset class="inputs">
      <ol>
    <%= i.input :DetailColor %>
    <%= i.input :size,  :input_html => { :size => "10" } %>
    <%= i.link_to_remove "remove" %>
  </ol>
</fieldset>
  <% end %>
  <%= f.link_to_add "add", :ItemColors %>
  <%= f.actions %>
<% end %>

При создании нового Item все нормально создает и перебрасывает на страницу созданного Item, но если делать update существующего происходит ошибка routes, хотя такой путь существует:

No route matches [PUT] "/admin/items"

Если поменять первую строку партиала на:

<%= semantic_nested_form_for @item, :url => admin_items_path(@item) do |f| %>

Получается:

No route matches [PUT] "/admin/items.150" #или другой item_id

rake routes:

batch_action_admin_items POST /admin/items/batch_action(.:format)             admin/items#batch_action
        admin_items GET     /admin/items(.:format)           admin/items#index            
                    POST    /admin/items(.:format)           admin/items#create
     new_admin_item GET     /admin/items/new(.:format)       admin/items#new                
    edit_admin_item GET     /admin/items/:id/edit(.:format)  admin/items#edit        
         admin_item GET     /admin/items/:id(.:format)       admin/items#show           
                    PUT     /admin/items/:id(.:format)       admin/items#update               
                    DELETE  /admin/items/:id(.:format)       admin/items#destroy 

Подскажите, из-за чего такое может быть?

UPD

Непонятно, откуда берётся точка в адресе запроса.

2
  • Задавая такой вопрос нужно показывать что выдаёт rake routes. Иначе можно гадать на кофейной гуще. 4 окт 2012 в 6:00
  • спасибо за ответ, добавил rake routes, в общем-то я его не добавил сразу потому-что все роуты в данном случае идут от самого active_admin: ActiveAdmin.routes(self) 4 окт 2012 в 9:30

1 ответ 1

1

Думаю тут вместо :url => admin_items_path нужно :url => admin_item_path(@item)

4
  • тогда получаю No route matches [PUT] "/admin/items.150" 150 - id item 4 окт 2012 в 13:32
  • странно, там точки не должно быть 4 окт 2012 в 14:54
  • мне тоже кажется что не должно быть) , непонятно откуда она берется 4 окт 2012 в 15:00
  • как оказалось, для Update должно быть так: admin_item_path() 5 окт 2012 в 0:10

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.