Вы можете легко отлаживать свои маршруты в будущем, запустив $ rake routes
и просмотрев выходные данные. ;)
Я думаю , что происходит, так это то, что ваш post :confirm
не регистрирует ожидаемый маршрут. В руководствах match
и его братья принимают строку в качестве сегмента URL следующим образом:
resources :locations do
member do
post 'confirm'
end
end
Обратите внимание, что «подтверждение» теперь является строкой, а не символом.
Если это не поможет, запустите $ rake routes
и прикрепите вывод к вашему вопросу.
Обновление
После просмотра вашего рейка я думаю, что вам просто нужно указать метод POST на вашем form_for
:
<%= form_for(@location, :url => { :action => :confirm }, :method => :post) do |f| %>
<% end %>
Вы также можете сделать это более читабельным, используя тот вспомогательный метод, который определяет Rails:
<%= form_for(@location, :url => confirm_location_path(@location), :method => :post) do |f| %>
<% end %>