Приложение Rails 3 не будет совпадать с маршрутом, несмотря на то, что Rake Routes показывает это - PullRequest
0 голосов
/ 16 января 2011

Вот часть моего файла маршрутов:

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 ]

3 голосов
/ 18 января 2011

У меня была проблема симуляции с одноэлементным ресурсом, проверьте, что вы передаете URL-адрес в form_tag, мы используем simple_form и имеем следующее

<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>
0 голосов
/ 19 января 2011

Как оказалось, я считаю, что проблема была в моем выборе "глагола действия" - я должен был использовать PUT вместо POST. Это мой новый файл маршрутов, и мне нужно было изменить только имена вспомогательных методов _url.

resource :vendor do put 'account', :action => 'modify_account' end
...