我正在学习RoR,而我正在尝试在我的网站上实施一个投票系统。用户可以在论坛上登录和发表评论,然后在该论坛上提出其他评论。
控制器代码
def upvote
@comment = Comment.find(params[:comment])
@comment.update_attribute('upVote', @comment.upvote + 1)
redirect_to :back
end
显示链接
<%= link_to 'Up Vote', comment_upvote_path(comment.id), method: :put %>
我尝试用评论代替(comment.id)无济于事。
路线
get 'upvote', :to=>'comments#upvote'
resources :comments do
put :upvote
end
当我点击upvote时,我发生了错误:
无法使用'id'=
找到评论app / controllers / comments_controller.rb:26:在'upvote'中 请求
参数:
{ “_方法”=&gt; “中放”, “authenticity_token”=&gt; “中HNXyufzGsXi / SZoJsa + 2uouMKVYlH6vYTHOF8iMgj6zAHO13jApk + QO33xEonkcoFgMugwYQZpSom1 + KbVRe7g ==”, “COMMENT_ID”=&gt; “中11”}
我检查了一个id为11的评论,所以我真的不知道是什么导致了这个错误。非常感谢任何帮助!
答案 0 :(得分:0)
从外观上看,:comment
应该像:comment_id
一样。
@comment = Comment.find(params[:comment_id])
答案 1 :(得分:0)
put :upvote
应该是
put :upvote, on: :member