Приложение Rails 3 не будет соответствовать маршруту, даже если Rable Routes показывает это
-
11-10-2019 - |
Вопрос
Вот часть моего файла маршрутов:
resource :vendor do post 'modify_account' end
Проводящие маршрутные маршруты генерируют следующую строку
modify_account_vendor POST /vendor/modify_account(.:format) {:action=>"modify_account", :controller=>"vendors"}
vendor POST /vendor(.:format) {:action=>"create", :controller=>"vendors"}
new_vendor GET /vendor/new(.:format) {:action=>"new", :controller=>"vendors"}
edit_vendor GET /vendor/edit(.:format) {:action=>"edit", :controller=>"vendors"}
GET /vendor(.:format) {:action=>"show", :controller=>"vendors"}
PUT /vendor(.:format) {:action=>"update", :controller=>"vendors"}
DELETE /vendor(.:format) {:action=>"destroy", :controller=>"vendors"}
/vendor(.:format) {:action=>"account", :controller=>"vendors"}
Я могу загрузить форму и проверить, что URL -адрес верен в действии формы, но когда я отправляюсь, приложение выбрасывает ошибку:
No route matches "/vendor/modify_account"
Любые предложения относительно того, что я могу сделать, чтобы устранение неполадок? Firebug проверяет, что страница ошибки имеет тип post.
Решение 2
Оказывается, я считаю, что проблема была с моим выбором «глагола действия» - я должен был использовать Put вместо поста. Это мой новый файл маршрутов, и единственное, что мне нужно было изменить, это названия методов _url Helper.
resource :vendor do put 'account', :action => 'modify_account' end
Другие советы
У меня была сияльная проблема с ресурсом Singleton, проверьте, что вы передаете в URL -адрес form_tag, мы используем Simple_form и имеем следующее
<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>