路由错误 - 没有路由匹配

时间:2012-09-21 18:44:57

标签: ruby ruby-on-rails-3 ruby-on-rails-3.2

访问requests / index.html.erb时出现问题:

  

路由错误

     

没有路线匹配{:action =>“取消”,:controller =>“requests”}

index.html.erb

<%= link_to "Cancel", cancel_request_path %>

routes.rb中:

 resources :requests do
   get 'cancel', on: :member
 end

requests_controller.rb:

 def cancel
   request = Request.find(params[:id])
   request.update_attributes(stage: "Cancelled")
   redirect_to root_path
 end

我错过了什么?

2 个答案:

答案 0 :(得分:1)

固定。我只需要在index.html.erb中更改为:

<%= link_to "Cancel", cancel_request_path(request.id) %>

我认为对象的所有属性都会传递给params中的动作,但我想我必须指定哪些参数传递给动作。

答案 1 :(得分:0)

get 'cancel', :on => :member

在成员上意味着,你的路径就像:

cancel_requests_path(:id=>request_id)

或只是参数...

中的requests对象