Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试投赞成票/投反对票时充当VOU votable重定向_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

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