2017-01-23 35 views
0

我想添加acts_as_votable喜歡我的rails 5應用程序的評論。 寶石安裝好,我加了兩個遷移(ActsAsVotable和AddCachedLikesToVotes)和我CommentsController我說:acts_as_votable沒有路由匹配錯誤Rails 5

def like 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.find(params[:id]) 
end 

def vote 
    if !current_user.lked? @comment 
    @comment.liked_by current_user 
    elsif current_user.liked? @comment 
    @comment.unliked_by current_user 
    end 
end 

我再將此添加到我的評論局部視圖:

<%= link_to like_post_comment_path(@post, comment), class: "like-btn", method: :put, remote: :true do %> 

我的錯誤是爲上面的線。這是說:

沒有路由匹配{:action =>「vote」,:controller =>「comments」,:id => nil,:post_id =>「1」}缺少必需的鍵:[:id ]

like_post_comment_path是正確的,我試過(@post, comment)之間不同的變化,(@comment.post_id, comment)(@post, @comment)等,並沒有什麼作品!

+1

什麼是你使用訪問查看URL?假設'(@post,@comment)'仍然不起作用,那麼你的@comment變量沒有被定義。調試以查看「@ comment」或「comment」的值。 – mmichael

+0

在控制器中定義?我很確定它已經定義好了,但是我可能會錯,因爲我還是真的很陌生。 – DianaBG

+0

它看起來像缺少評論[:id],但我不確定如何檢查是否存在。我認爲它的確如此,因爲我能夠以無誤的用戶身份創建評論。 – DianaBG

回答

0

試試這個

<%= link_to like_post_comment_path(comment, poste_id: @poste.id), class: "like-btn", method: :put, remote: :true do %> 
+0

這沒有奏效:/ – DianaBG

+0

它是一樣的錯誤。我認爲mmichael是正確的評論是空的,如果你不知道如何在rails上進行調試,你可以使用binding.pry安裝pry gem並檢查評論的值 –

+0

我一直在嘗試使用pry,但它一直給我一個不同的錯誤。 – DianaBG

相關問題