Ruby on rails 尝试投赞成票/投反对票时充当VOU votable重定向
我对表演有意见。我有一个简单的论坛应用程序,我想有投票的功能,向上和向下的帖子。我用这个作为可供选择的宝石。我在帖子中添加了两种方法:Ruby on rails 尝试投赞成票/投反对票时充当VOU votable重定向,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我对表演有意见。我有一个简单的论坛应用程序,我想有投票的功能,向上和向下的帖子。我用这个作为可供选择的宝石。我在帖子中添加了两种方法: 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.
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)
当我尝试单击upvote或downvote时,我已被重定向到:
http://localhost:3000/topics/104/posts/55/like?method=put
我有以下错误:
没有路线匹配[GET]“/topics/104/posts/55/like”
怎么了?尝试使用“GET”方法而不是“PUT”,如下所示
resources :topics, except: :index do
resources :posts do
member do
get "like", to: "posts#upvote"
get "dislike", to: "posts#downvote"
end
end
end
我要将重定向的PostsController代码更改为:
重定向到:返回
如果您使用的是Rails 5,这会更好:
重定向\u后退(回退位置:根路径)
它不工作。我有以下错误:未定义的局部变量或#的“post”方法。错误在第行:@post=post.find(params[:id])表名的第一个字母应该是大写的,就像post.find一样。现在一切正常,但当我单击upvote或downvote时,它不起作用。帖子仍然有0个votes你在你的帖子模型中添加了“acts_as_votable”吗?是的,我已经添加了,我不知道为什么这不是wokring