我想在我的rails应用程序中创建一个方法,它会增加与记录绑定的值。
控制器中的方法如下所示:
def upvote
@spot = Spot.find(params[:id])
@spot.rating += 1
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @spot }
end
end
然后在“spot / 1”查看记录时,我包含以下代码:
<%= link_to 'Upvote', @spot, :confirm => 'Are you sure?', :method => :upvote %>
单击时会抛出错误:
"No route matches "/spots/1""
即使我已经在/ spots / 1。我知道这是一个路线问题,但我似乎无法给这个方法一个有效的路线......
答案 0 :(得分:0)
参数:method
标识HTTP动词(GET,POST,UPDATE,...),而不是要调用的方法。
要添加新操作,请编辑routes.rb文件
resources :sposts do
member do
put :upvote
end
end
然后使用命名路线
<%= link_to 'Upvote', upvote_spot_path(@spot), :confirm => 'Are you sure?', :method => :put %>