我的模型中有以下基本代码来返回随机事件:
def self.random
Event.first(:offset => rand(Event.count))
end
我想修改该函数,使其返回 N 个事件。
我知道first
可以接受一个数字作为参数,即Event.first(2)
,但是如何将它与随机偏移量结合起来?
即像这样的东西
def self.random(n = 1)
Event.first(n) # and offset??!!
end
如有任何帮助,我们将不胜感激!
最佳答案
这应该适用于返回 n
随机记录:
def self.random(n = 1)
Event.order("RANDOM()").limit(n)
end
limit
方法实际上是由 first
调用的当你给它一个 Integer 作为第一个参数时,你也可以使用 .first(n)
而不是.limit(n)
如果你愿意的话。
您可能需要替换 RAND()
而不是RANDOM()
根据您的数据库系统,请查阅文档以了解确切的方法。
关于ruby-on-rails - Rails/ActiveRecord - 查找 N 个随机项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15801921/