私はRoRを学習していますが、現在私のウェブサイトには投票システムが実装されています。ユーザーは、ログオンしてフォーラムにコメントを投稿し、そのフォーラムの他のコメントをupvoteすることができます。リンク/ボタンで列属性を変更する方法 - Ruby on Rails
コントローラー・コード
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' とコメント=
アプリ/コントローラ/ comments_controller.rb:26: `upvote '内 リクエスト
パラメータ:
私がチェック{ "_method" => "入れ"、 "authenticity_token" => "HNXyufzGsXi/SZoJsa + 2uouMKVYlH6vYTHOF8iMgj6zAHO13jApk + QO33xEonkcoFgMugwYQZpSom1 + KbVRe7g =="、 "comment_id" => "11"}
と11のIDを持つコメントが存在するため、このエラーの原因はわかりません。どんな助けも非常に高く評価されるでしょう!
はいああ、私はそれを見ていないと信じてすることはできません、どうもありがとうございましであるべき。私は今、取得しています:未定義のメソッド '+ 'はnil:NilClassです。だから私は、すでに私のために持っているある種のインクリメント方法のレールを使うべきだと思う。 –
@EduardoTafner:これは0から始まり、デフォルトでは 'nil:NilClass'になっているからです。 '@ comment.increment( 'upVote')'を使って1だけインクリメントすることができます。 –