一尘不染

Rails选择随机记录

mysql

我不知道我只是在错误的地方还是在什么地方找东西,但是活动记录是否具有检索随机对象的方法?

就像是?

@user = User.random

或者…好吧,因为这种方法不存在,所以有一些惊人的“ Rails Way”来做到这一点,我似乎总是很冗长。我也使用mysql。


阅读 271

收藏
2020-05-17

共1个答案

一尘不染

在Rails 4中,我将扩展ActiveRecord::Relation

class ActiveRecord::Relation
  def random
    offset(rand(count))
  end
end

这样,您可以使用范围:

SomeModel.all.random.first # Return one random record
SomeModel.some_scope.another_scope.random.first
2020-05-17