我想添加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)
等,並沒有什麼作品!
什麼是你使用訪問查看URL?假設'(@post,@comment)'仍然不起作用,那麼你的@comment變量沒有被定義。調試以查看「@ comment」或「comment」的值。 – mmichael
在控制器中定義?我很確定它已經定義好了,但是我可能會錯,因爲我還是真的很陌生。 – DianaBG
它看起來像缺少評論[:id],但我不確定如何檢查是否存在。我認爲它的確如此,因爲我能夠以無誤的用戶身份創建評論。 – DianaBG