我有一个模型,我想从中拉出符合特定条件的随机记录。例如:从表Thing中给我一条随机记录,其中column_name = true。
要从模型中获取随机记录,我可以执行以下操作:
Thing.offset(rand(Thing.count)).first
我希望将其与查询结合起来:
Thing.where("column_name = ?", true).all
这不起作用:
counter = Thing.where("column_name = ?", true).count
Thing.where("column_name = ?", true).offset(rand(counter)).first
非常感谢有关如何编写此查询的任何想法。
答案 0 :(得分:0)
这应该适合你:
counter = Thing.where("column_name = ?", true).count
Thing.where("column_name = ?", true).limit("#{rand(counter)}, 1").first
返回从表格外的某处读取的一行。