自定义路由不匹配航线
问题描述:
在黄瓜测试,我得到以下错误:自定义路由不匹配航线
No route matches "/companies/29/update_owner"
我不知道我做错了,但是我相信它的一些愚蠢的事。
我有以下途径:
company_update_owner POST /companies/:company_id/update_owner(.:format) {:controller=>"companies", :action=>"update_owner"}
company_set_owner /companies/:company_id/set_owner(.:format) {:controller=>"companies", :action=>"set_owner"}
companies GET /companies(.:format) {:action=>"index", :controller=>"companies"}
POST /companies(.:format) {:action=>"create", :controller=>"companies"}
new_company GET /companies/new(.:format) {:action=>"new", :controller=>"companies"}
edit_company GET /companies/:id/edit(.:format) {:action=>"edit", :controller=>"companies"}
company GET /companies/:id(.:format) {:action=>"show", :controller=>"companies"}
PUT /companies/:id(.:format) {:action=>"update", :controller=>"companies"}
DELETE /companies/:id(.:format) {:action=>"destroy", :controller=>"companies"}
我曾尝试:
company_update_owner_path(:company_id => @company.id)
和
company_update_owner_path(@company)
更新:
= form_for @company, :url => company_update_owner_path(:company_id => @company.id), :method => :put do |f|
任何帮助将不胜感激。
下面是代码在routes.rb中:
resources :companies do
match '/update_owner' => 'companies#update_owner', :as => :update_owner, :via => :post
match '/set_owner' => 'companies#set_owner', :as => :set_owner
end
答
您需要删除“:方法=>:把”
+0
我把它改成:method =>:post,然后我拿出:via =>:post,你的回答帮我找到了那个谢谢。 –
答
您的路线被声明为POST
,但你正在做的形式PUT
。修复路线或表单,然后你就可以钉住它。
+0
感谢瑞安,这是利玛窦和你的答案是帮我找到了。 –
答
将离开这个作为一个评论,但fromatting被劫持。 如果你不知道,你也可以定义这些路线略有不同,太:
resources :companies do
member do
post "update_owner"
get "set_owner"
end
end
哎呀,我应该已经发布了整个的form_for,生病更新现在 –