Я пытаюсь добавить act_as_votable, чтобы отправлять комментарии к моим приложениям rails 5. Драгоценный камень был установлен штраф, я добавил две миграции (ActsAsVotable и AddCachedLikesToVotes) и к моему CommentsController
я добавил:actions_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