如何使用链接/按钮更改列属性 - Ruby on Rails

时间:2016-12-14 01:50:39

标签: ruby-on-rails ruby view controller

我正在学习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的评论,所以我真的不知道是什么导致了这个错误。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

从外观上看,:comment应该像:comment_id一样。

@comment = Comment.find(params[:comment_id])

答案 1 :(得分:0)

put :upvote

应该是

put :upvote, on: :member