2011-01-19 105 views
0

我有一个Model,属性为votes。我在一个视图中有一个链接,需要增加votes的值 - 最好的方法是什么?从链接更新ActiveRecord属性的最佳方法

目前我正在试图链接,如:

<%= link_to 'Up', '#', :method => :voteup %> 

,并在model_controller一个voteup方法,但是这是行不通的。

回答

1

:方法只能用于指定POST,GET,DELETE和PUT请求之间。 link_to的第二个参数应该是您想要在控制器中执行的操作。

<%= link_to "Up", :action => :voteup %> 
+0

感谢您的帮助,但是我在尝试时得到了这个结果:`没有路线匹配{:controller =>“quotes”,:action =>“voteup”}`我用`:voteup`而不是``投票“ `在我的代码中也是如此 – 2011-01-19 16:52:42

3

我认为最好的办法是这样的:

config/routes.rb

resources :quotes do 
    member do 
    post :upvote 
    end 
end

而且你的链接:

<%= link_to 'Up', upvote_quote_path(@quote), :method => :post %>

请注意,我们使用POST请求,该请求在修改记录时比GET请求更合适。

+1

这应该可能是`<%= link_to'Up',upvote_quote_path(@quote),:method =>:post%>`,否则他仍然会得到“无路由匹配”错误,因为它将尝试执行GET请求。 – 2011-01-19 17:05:15

相关问题