Rails 3 Routing Error - PullRequest
       1

Rails 3 Routing Error

1 голос
/ 26 октября 2010

Вчера у меня это работало, я не знаю, что я сделал, чтобы его сломать.

Вот маршруты для контроллера 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 %>

, которое я включил в форму.Ради краткости я оставил это раньше, потому что не думал, что это важно.Я вижу, что это была плохая идея.

Кто-нибудь знает, почему присутствие этой строки в форме вызывает странную ошибку маршрутизации?

1 Ответ

1 голос
/ 27 октября 2010

Похоже, я идиот.

Оставлять эту важную информацию было плохой идеей. Наличие внутри формы button_to - нет-нет, оно создает форму внутри формы.

Ошибка новичка. Жаль, что я делал это в течение долгого времени. Привет комментаторам, извините за трату вашего драгоценного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...