2016-12-14 92 views
0

我正在學習RoR,我目前正試圖在我的網站上實施一個投票系統。用戶可以在論壇上登錄和發表評論,然後在該論壇上提出其他意見。在節目如何使用鏈接/按鈕更改列屬性 - Ruby on Rails

<%= link_to 'Up Vote', comment_upvote_path(comment.id), method: :put %> 

控制器代碼

def upvote 
    @comment = Comment.find(params[:comment]) 
    @comment.update_attribute('upVote', @comment.upvote + 1) 
    redirect_to :back 
end 

鏈接我試圖無濟於事評論代(comment.id)。

路線

get 'upvote', :to=>'comments#upvote' 

resources :comments do 
put :upvote 
end 

當我點擊給予好評,我遇到了錯誤發生的情況:

無法找到與 'ID' 註釋=

應用程序/控制器/ comments_controller.rb:26:'upvote' 請求

參數:

{ 「_method」=> 「放」, 「authenticity_token」=> 「HNXyufzGsXi/SZoJsa + 2uouMKVYlH6vYTHOF8iMgj6zAHO13jApk + QO33xEonkcoFgMugwYQZpSom1 + KbVRe7g ==」, 「COMMENT_ID」=> 「11」}

我檢查和有11個ID的評論存在,所以我真的不知道是什麼導致了這個錯誤。任何幫助將非常感謝!

回答

0

通過對事物的外表,:comment應該是:comment_id像這樣。

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

是啊非常感謝你,都不敢相信,我沒有看到這一點。我現在得到了:未定義的方法'+'爲零:NilClass。所以我認爲我應該使用某種增量方法rails對我來說已經有了。 –

+0

@EduardoTafner:那將是因爲你從0開始,默認爲'nil:NilClass'。你可以使用@ comment.increment('upVote')'增加1。 –