0

これが私のルートファイルの一部です:

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であることを確認します。

4

2 に答える 2

3

シングルトンリソースで同様の問題が発生しました。URLをform_tagに渡していることを確認してください。simple_formを使用しており、次のようになっています。

<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>
于 2011-01-18T17:09:33.533 に答える
0

結局のところ、問題は「アクション動詞」の選択にあると思います。POSTではなくPUTを使用する必要がありました。これは私の新しいルートファイルであり、変更する必要があるのは_urlヘルパーメソッド名だけでした。

resource :vendor do put 'account', :action => 'modify_account' end
于 2011-01-19T13:53:58.580 に答える