我有一个Model
,属性为votes
。我在一个视图中有一个链接,需要增加votes
的值 - 最好的方法是什么?从链接更新ActiveRecord属性的最佳方法
目前我正在试图链接,如:
<%= link_to 'Up', '#', :method => :voteup %>
,并在model_controller
一个voteup
方法,但是这是行不通的。
我有一个Model
,属性为votes
。我在一个视图中有一个链接,需要增加votes
的值 - 最好的方法是什么?从链接更新ActiveRecord属性的最佳方法
目前我正在试图链接,如:
<%= link_to 'Up', '#', :method => :voteup %>
,并在model_controller
一个voteup
方法,但是这是行不通的。
:方法只能用于指定POST,GET,DELETE和PUT请求之间。 link_to的第二个参数应该是您想要在控制器中执行的操作。
<%= link_to "Up", :action => :voteup %>
我认为最好的办法是这样的:
在config/routes.rb
:
resources :quotes do
member do
post :upvote
end
end
而且你的链接:
<%= link_to 'Up', upvote_quote_path(@quote), :method => :post %>
请注意,我们使用POST请求,该请求在修改记录时比GET请求更合适。
这应该可能是`<%= link_to'Up',upvote_quote_path(@quote),:method =>:post%>`,否则他仍然会得到“无路由匹配”错误,因为它将尝试执行GET请求。 – 2011-01-19 17:05:15
感谢您的帮助,但是我在尝试时得到了这个结果:`没有路线匹配{:controller =>“quotes”,:action =>“voteup”}`我用`:voteup`而不是``投票“ `在我的代码中也是如此 – 2011-01-19 16:52:42