获得有条件的随机记录

时间:2012-07-06 20:16:28

标签: ruby-on-rails ruby-on-rails-3 activerecord

以下代码无法执行我需要它执行的操作。我想返回一个随机设计对象,其user_id不是1.因此,查询有时不返回任何记录。

   offset = rand(Design.count)
   @design = Design.first(:offset => offset, :conditions => [ "user_id != ?", 1])

2 个答案:

答案 0 :(得分:1)

您要做的是计算符合这些条件的元素数量:

offset = rand(Design.count(:conditions => [ "user_id <> ?", 1]))

答案 1 :(得分:0)

如果数据库相当小,您可以在返回的数组上调用sample方法。

Design.where(:offset => offset, :conditions => [ "user_id != ?", 1]).sample