我需要通过ActiveRecord从表中获取随机记录。我遵循了2006年Jamis Buck的例子。但是,我也通过Google搜索遇到了另一种方式(由于新用户的限制,无法通过链接添加属性): rand_id = rand(Model.count) rand_record = Model.first(:conditions => ["id >= ?", rand_id])我很好奇这里的其他人是如何做到的,或者是否有人知道哪种方法会更有效。
3 回答
慕森王
TA贡献1777条经验 获得超3个赞
没有至少两个查询,我还没有找到一种理想的方法。
以下使用随机生成的数字(直到当前记录数)作为偏移量。
offset = rand(Model.count)
# Rails 4
rand_record = Model.offset(offset).first
# Rails 3
rand_record = Model.first(:offset => offset)
老实说,我一直在使用ORDER BY RAND()或RANDOM()(取决于数据库)。如果您没有性能问题,那么这不是性能问题。
- 3 回答
- 0 关注
- 606 浏览
添加回答
举报
0/150
提交
取消