Ruby on rails 3 Rails 3应用程序将不匹配路线,即使rake routes显示了它

Ruby on rails 3 Rails 3应用程序将不匹配路线,即使rake routes显示了它,ruby-on-rails-3,rails-routing,Ruby On Rails 3,Rails Routing,以下是我的路由文件的一部分: 资源:供应商发布“修改账户”结束 运行rake路由将生成以下行 modify_account_vendor POST /vendor/modify_account(.:format) {:action=>"modify_account", :controller=>"vendors"} vendor POST /v

以下是我的路由文件的一部分:

资源:供应商发布“修改账户”结束

运行rake路由将生成以下行

           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是否正确,但当我提交时,应用程序会抛出一个错误:

没有路线匹配“/供应商/修改账户”


关于如何排除故障,有什么建议吗?Firebug验证错误页面是否为POST类型。

我在singleton资源中遇到一个类似问题,请检查您是否正在将url传递到form_标记,我们使用simple_form并具有以下内容

<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>
enterprise_account_path do | f |-%%>

我在一个单例资源中遇到了一个类似的问题,请检查您是否正在将url传递到表单标记,我们使用简单表单,并具有以下内容

<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>
enterprise_account_path do | f |-%%>

事实证明,我认为问题在于我对“动作动词”的选择——我应该使用PUT而不是POST。这是我的新routes文件,我唯一需要更改的是_URLhelper方法名称

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

事实证明,我认为问题在于我对“动作动词”的选择——我应该用PUT而不是POST。这是我的新routes文件,我唯一需要更改的是_URLhelper方法名称

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