acts_as_votable gem routes错误
我是rails的新手,并试图通过使用acts_as_votable gem来解决问题。 我收到以下错误告诉我没有路线匹配:
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
和我的upvote按钮:
谢谢您的帮助!
试试这个:
的routes.rb
resources :comments do resources :questions do put "like", to: "questions#upvote" end end
Upvote按钮:
<%= link_to "Upvote", comment_question_like_path(@comment, @question), method: :put %>
您需要正确的路径,并且使用link_to的方法将在第二个参数之后。
路径名like_question_path
不正确。 它应至少包含“注释”,类似“like_comment_question_path”。 请查询您的$rake routes
以获取准确的名称。
顺便问一下,你有什么理由需要使用put
吗? 在我看来,此操作不是要更改现有数据,而是添加新数据,因此“POST”应该更合适。
方法选项应该在命名路由之外,如下所示:
<%= link_to "Upvote", like_question_path(@comment, @question), method: :put %>
另外,@ Billy Chan说。