2012-07-06 101 views
0

以下代码不会执行我需要的操作。我想返回其user_id不是1的随机设计对象。因为该查询有时不返回任何记录。获取条件的随机记录

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

回答

1

什么你想要做的是计算元素的数量也符合这些条件:

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

谢谢你,从来没有见过 '<>' 之前,是什么呢? – 2012-07-06 20:29:05

+1

这是'!='的SQL标准,但大多数SQL实现都支持'!='。 – robbrit 2012-07-06 20:37:25

0

如果数据库是相当小的,你可以调用示例方法返回的阵列上。

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