假设我们有类的东西
@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)