在Rails中随机选择n个对象
我有一个名为Post的模型,有一个名为vote的列,它有很多post
我想随机选择n个有> = x票的post。 与post数量相比,n非常小
做这个的最好方式是什么? 我尝试了几种似乎非常低效的方法。 谢谢
如果您使用的是MySQL,则可以随机订购符合条件的所有post并选择前n个。
实际的查询看起来像
SELECT * FROM posts WHERE votes >= x ORDER BY rand() LIMIT n
没有测试过这个,但是这样的东西应该在Rails中运行:
Post.all(:conditions => ["votes >= ?", x], :order => "rand()", :limit => n)