私はacts_as_votable gemに問題があります。シンプルなフォーラム アプリがあり、投稿に賛成票と反対票を投じる機能が必要です。私はこのacts_as_votable gemに使用しました。投稿コントローラーに 2 つのメソッドを追加しました。
def upvote
@post = post.find(params[:id])
@post.liked_by current_user
redirect_to forum_topic_path(@post.topic.forum, @post.topic)
end
def downvote
@post = post.find(params[:id])
@post.downvote_from current_user
redirect_to forum_topic_path(@post.topic.forum, @post.topic)
end
私のルートは:
resources :topics, except: :index do
resources :posts do
member do
put "like", to: "posts#upvote"
put "dislike", to: "posts#downvote"
end
end
end
そして、私のトピックショーアクションビューには、次のリンクがあります。
= link_to "Upvote", like_topic_post_path(post.topic.id,post.id, method: :put)
= link_to "Downvote", dislike_topic_post_path(post.topic.id,post.id, method: :put)
賛成票または反対票をクリックしようとすると、リダイレクトされ
http://localhost:3000/topics/104/posts/55/like?method=put
て次のエラーが表示されます: ルートが一致しません [GET] "/topics/104/posts/55/like" 何が問題なのですか?