繁体   English   中英

actions_as_votable宝石路线错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM