Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 使用相同的URL放置Rails更新_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 使用相同的URL放置Rails更新

Ruby on rails 使用相同的URL放置Rails更新,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在随机调用一个帖子,允许用户在加载另一篇帖子之前+1或-1该帖子。我的模型在URL/posts/random处使用以下命令生成一个随机记录 Post.rb//Model def self.find(*args) if args.first.to_s == "random" Post.find :first, :offset => rand(Post.count) else super end 当用户访问posts/random时,此代码生成一个随机post。但

我正在随机调用一个
帖子
,允许用户在加载另一篇帖子之前+1或-1该帖子。我的模型在URL/posts/random处使用以下命令生成一个随机记录

Post.rb//Model

def self.find(*args)
  if args.first.to_s == "random"
    Post.find :first, :offset => rand(Post.count)
  else
    super
end

当用户访问posts/random时,此代码生成一个随机post。但是,我还在数据库中定义了一个
thumb\u up
thumb\u down
字段,该字段对应于
thumb\u up
thumb\u down
图像,单击该图像时,需要在重定向到另一个/posts/random之前+1或-1数据库中的值。我的理解是,要做到这一点,我需要调用PUT-update方法,但是,由于我的URL是posts/random而不是posts/1,我该如何做到这一点?我需要改变我的路线吗?

首先,你需要一个代表随机帖子的实例变量,这样你就可以在竖起和竖起链接中使用它。然后,您需要确保这些链接如下所示:

<%= link_to "Thumbs Up", post_path(@post, thumbs_up: 1), method: :put %>
<%= link_to "Thumbs Down", post_path(@post, thumbs_down: 1), method: :put %>
@post.update_attributes(thumbs_up: @post.thumbs_up + params[:thumbs_up],thumbs_down: @post.thumbs_down + params[:thumbs_down] )

这只是一个开始,但我认为这应该让你朝着正确的方向前进。

你似乎错过了一个
结尾。
。啊,是的,谢谢你,那是一个复制错误。这一部分可以很好地从数据库生成随机帖子。我的问题是,我可以在固定URL的情况下调用PUT更新吗?我生成了一个jQuery脚本来执行类似的任务(例如,在参数被更改的情况下调用PUT方法),但我不确定这是“正确的方式”。非常感谢!我喜欢Rails和它周围的社区。