从 ActiveRecord 集合对象中随机抽样?
Randomly sample from ActiveRecord collection object?
假设我们有一些 class
@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)
...或者如果您喜欢 MySQL 和 RAND
@physician.availabilities.order('RAND()').limit(5)
假设我们有一些 class
@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
@physician.availabilities.order('RANDOM()').limit(5)
...或者如果您喜欢 MySQL 和 RAND
@physician.availabilities.order('RAND()').limit(5)