从ActiveRecord集合对象中随机采样



假设我们有类的东西

@physician.availabilities.class
=> Availability::ActiveRecord_Associations_CollectionProxy
@physician.availabilities.length
=> 72

我们如何从这个对象中随机采样记录?

例如,这看起来很有前景的

@physician.availabilities.sample(5)

执行

@physician.availabilities.sample(5).class
=> Array

而我想重新训练一个ActiveRecord对象(这样我就可以.save随机样本,而不是其他样本(

您可以在两个查询中完成此操作。

ids = @physician.availabilities.sample(5).pluck(:id)
@physician.availabilities.where(id: ids)

这也可以使用带有RANDOM的Postgres

@physician.availabilities.order('RANDOM()').limit(5)

或者如果你喜欢使用RAND的MySQL

@physician.availabilities.order('RAND()').limit(5)

相关内容

  • 没有找到相关文章

最新更新