访问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
我错过了什么?
答案 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对象