[英]acts_as_votable gem routes error
我是Rails的新手,正在尝试使用act_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按钮:
<%= link_to "Upvote", like_question_path(@comment, @question, method: :put) %>
谢谢您的帮助!
路径名称like_question_path
不正确。 它应至少包含“ comment”,类似于“ like_comment_question_path”。 请咨询您的$rake routes
以获取准确的名称。
顺便说一句,您是否有任何需要使用put
理由? 我认为此操作不是更改现有数据,而是添加新数据,因此“ POST”应该更合适。
method选项应该在命名路由之外,如下所示:
<%= link_to "Upvote", like_question_path(@comment, @question), method: :put %>
此外,@ Billy Chan说了什么。
尝试这个:
routes.rb
resources :comments do
resources :questions do
put "like", to: "questions#upvote"
end
end
上载按钮:
<%= link_to "Upvote", comment_question_like_path(@comment, @question), method: :put %>
您需要正确的路径,并且link_to使用的方法也位于第二个参数之后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.