Ruby on rails 如何使rails博客在主页上随机显示帖子?

Ruby on rails 如何使rails博客在主页上随机显示帖子?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我想要的是,每次有人登陆我的博客,他们都会在主页上看到一篇随机的帖子。在控制器中定义一个方法的最佳方法是什么,我可以调用该方法到视图中来实现这一点 谢谢 假设您在数据库中有一个Post模型和每个Post的记录,请执行以下操作: def index @post = Post.offset(rand(Post.count)).first end …然后在您的视图中,只需显示@post的内容,假设您在数据库中有一个post模型和每个post的记录,请执行以下操作: def index @po

我想要的是,每次有人登陆我的博客,他们都会在主页上看到一篇随机的帖子。在控制器中定义一个方法的最佳方法是什么,我可以调用该方法到视图中来实现这一点


谢谢

假设您在数据库中有一个Post模型和每个Post的记录,请执行以下操作:

def index
  @post = Post.offset(rand(Post.count)).first
end

…然后在您的视图中,只需显示
@post

的内容,假设您在数据库中有一个post模型和每个post的记录,请执行以下操作:

def index
  @post = Post.offset(rand(Post.count)).first
end

…然后在您的视图中,只需显示
@post

的内容即可避免多次查询,您可以使用DBMS的
随机
RAND
在MySQL中)功能对记录进行排序,然后
限制1
。例如MySQL:

@post = Post.order("rand()").limit(1)

为了避免多次查询,您可以使用DBMS的
RANDOM
(MySQL中的
RAND
)函数对记录进行排序,然后
LIMIT 1
。例如MySQL:

@post = Post.order("rand()").limit(1)

比我快。也比我输入的内容更优雅。:)嘿,谢谢!,但由于某种原因,我的观点没有任何东西显示出来together@alex-获取随机帖子的代码将触发两个查询,即一个用于统计帖子,另一个用于选择帖子。我建议你同意迈克的答案。@上瘾了,两种方法都可以,但我更喜欢这个方法。首先,它是便携式的。第二,即使在大型表上运行,它的性能也很好。这里有一个很好的参考资料是PragProg的SQL反模式的第183页——他们将另一个解决方案中给出的查询视为“反模式”。请告诉我。也比我输入的内容更优雅。:)嘿,谢谢!,但由于某种原因,我的观点没有任何东西显示出来together@alex-获取随机帖子的代码将触发两个查询,即一个用于统计帖子,另一个用于选择帖子。我建议你同意迈克的答案。@上瘾了,两种方法都可以,但我更喜欢这个方法。首先,它是便携式的。第二,即使在大型表上运行,它的性能也很好。这里有一个很好的参考是PragProg的SQL反模式的第183页——它们将另一个解决方案中给出的查询视为“反模式”。我是否只是将其放入视图?我是否只是将其放入视图?