Вчера у меня это работало, я не знаю, что я сделал, чтобы его сломать.
Вот маршруты для контроллера RESTful:
brand_responsibilities GET /brands/:brand_id/responsibilities(.:format) {:action=>"index", :controller=>"responsibilities"}
brand_responsibilities POST /brands/:brand_id/responsibilities(.:format) {:action=>"create", :controller=>"responsibilities"}
new_brand_responsibility GET /brands/:brand_id/responsibilities/new(.:format) {:action=>"new", :controller=>"responsibilities"}
edit_brand_responsibility GET /brands/:brand_id/responsibilities/:id/edit(.:format) {:action=>"edit", :controller=>"responsibilities"}
brand_responsibility GET /brands/:brand_id/responsibilities/:id(.:format) {:action=>"show", :controller=>"responsibilities"}
brand_responsibility PUT /brands/:brand_id/responsibilities/:id(.:format) {:action=>"update", :controller=>"responsibilities"}
brand_responsibility DELETE /brands/:brand_id/responsibilities/:id(.:format) {:action=>"destroy", :controller=>"responsibilities"}
Моя форма выглядит так:
<%= form_for :responsibility, :remote => true do |f| %>
<%= f.hidden_field :access_request_id, :value => ar.id %>
<%= f.hidden_field :user_id, :value => user.id %>
<%= f.hidden_field :brand_id, :value => @brand.id %>
<%= f.submit %>
<% end %>
Но теперь я получаю 404 с этим лог-сообщением:
Started POST "/brands/30/responsibilities" for 127.0.0.1 at Tue Oct 26 10:47:17 -0400 2010
ActionController::RoutingError (No route matches "/brands/30/responsibilities"):
Похоже, маршрут мне подходит!Чего мне не хватает?
Обновление: я также попробовал это в консоли:
rs.recognize_path '/brands/30/responsibilities', :method => :post
, и ответ:
=> {:controller=>"responsibilities", :brand_id=>"30", :action=>"create"}
Какова моя сделка?
ОБНОВЛЕНИЕ № 2:
Я нашел причину, хотя я не знаю, почему это причина.У меня есть другое поле:
<%= button_to "Deny", brand_responsibilities_path(@brand, :ar => ar), :remote => true, :method => :delete %>
, которое я включил в форму.Ради краткости я оставил это раньше, потому что не думал, что это важно.Я вижу, что это была плохая идея.
Кто-нибудь знает, почему присутствие этой строки в форме вызывает странную ошибку маршрутизации?