[英]Creating an array of hashes using find_each
我正在尝试创建一个哈希数组。 我可以使用User.all创建一个,但是我不想一次加载所有数据,因此我尝试使用find_each。 我是红宝石新手,有人可以指出我做错了什么吗?
当我使用.all
2.0.0 (main):0 > User.all.as_json.map { |u| {
2.0.0 (main):0 * index: {id: u["user"]["id"]}}}
[{:index=>{:id=>443}},
{:index=>{:id=>3642}},
{:index=>{:id=>506}}, ...
当我使用find_each
2.0.0 (main):0 > User.find_each { |u|
2.0.0 (main):0 * u = u.to_json;
2.0.0 (main):0 * u = JSON.parse(u);
2.0.0 (main):0 * {index: { id: u["user"]["id"]}}}
User Load (19.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1000
User Load (18.2ms) SELECT "users".* FROM "users" WHERE ("users"."id" > 1038) ORDER BY "users"."id" ASC LIMIT 1000
User Load (21.4ms) SELECT "users".* FROM "users" WHERE ("users"."id" > 2105) ORDER BY "users"."id" ASC LIMIT 1000
User Load (14.5ms) SELECT "users".* FROM "users" WHERE ("users"."id" > 3139) ORDER BY "users"."id" ASC LIMIT 1000
=> nil
find_each不返回任何内容,只是将其传递到给定的块中。
my_objects = []
User.find_each { |u|
u = u.to_json
u = JSON.parse(u)
my_objects << {index: { id: u["user"]["id"]}}
}
my_objects.to_json
有关查找每个对象及其用法(例如batch_size等)的更多信息,请参见文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.