0

私はレールに不慣れで、acts_as_votable 宝石を使用して機能する質問に賛成票を集めようとしています。一致するルートがないことを示す次のエラーが表示されます。

No route matches [GET] "/questions/1/like"

これが私のquestions_controller.rbでの私のupvoteメソッドです:

def upvote
@question = Question.find params[:question_id]
@question.liked_by current_user
redirect_to @questions
end

私の routes.rb ファイル:

 resources :comments do
  resources :questions
    member do
    put "like", to: "questions#upvote"
    end
end

そして私の賛成ボタン:

<%= link_to "Upvote", like_question_path(@comment, @question, method: :put) %>

助けてくれてありがとう!

4

3 に答える 3

1

パス名like_question_pathが正しくありません。「like_comment_question_path」など、少なくとも「コメント」が含まれている必要があります。$rake routes正確な名前については、お問い合わせください。

ところで、あなたが使う必要がある理由はありますputか?私の意見では、このアクションは既存のデータを変更するのではなく、新しいデータを追加することなので、「POST」の方が適切です。

于 2013-09-12T03:05:43.173 に答える