0

这是访问 requests/index.html.erb 时的问题:

路由错误

没有路由匹配 {:action=>"cancel", :controller=>"requests"}

index.html.erb:

<%= link_to "Cancel", cancel_request_path %>

路线.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

我错过了什么?

4

2 回答 2

1

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

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

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

于 2012-09-21T18:55:52.897 回答
0

get 'cancel', :on => :member

在成员方面,您的路径将是:

cancel_requests_path(:id=>request_id)

或者只是参数中的请求对象...

于 2012-09-21T18:50:50.813 回答