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