gpt4 book ai didi

mysql - Rails 选择随机记录

转载 作者:IT老高 更新时间:2023-10-28 23:55:51 24 4
gpt4 key购买 nike

我不知道我是不是看错地方了还是什么,但是 Active Record 是否有检索随机对象的方法?

类似的东西?

@user = User.random

或者...好吧,既然那个方法不存在,是否有一些惊人的“Rails Way”来做这件事,我似乎总是过于冗长。我也在使用 mysql。

最佳答案

我见过的大多数这样做的例子最终都是计算表格中的行数,然后生成一个随机数来选择一个。这是因为诸如 RAND() 之类的替代方案效率低下,因为它们实际上获取每一行并为它们分配一个随机数,或者我已经读过(并且我认为是特定于数据库的)。

您可以添加一种类似于我找到的方法 here .

module ActiveRecord
class Base
def self.random
if (c = count) != 0
find(:first, :offset =>rand(c))
end
end
end
end

这将使您使用的任何模型都有一个名为 random 的方法,该方法按照我上面描述的方式工作:在表中的行数内生成一个随机数,然后获取与该随机数关联的行。所以基本上,您只进行一次提取,这可能是您更喜欢的 :)

你也可以看看this rails plugin .

关于mysql - Rails 选择随机记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com