【发布时间】:2018-09-30 04:02:39
【问题描述】:
抱歉英语不好))
我的 ruby 代码中有一个 id 数组。
例子:
[[10], [], [10, 1, 3], []]
我可以通过保存分组在一个查询中从 MySQL 表 users 加载 User 模型吗?
例子:
[[#<User id=10>], [], [#<User id=10>, #<User id=1>, #<User id=3>], []]
环境:Ruby 2.5.1 |导轨 5 | MySQL
找到的解决方案之一:
我可以展平我的 id 数组并通过该数组将我的模型加载到哈希中:
hash = User.where(id: array.flatten).index_by(&:id)
然后,在迭代过程中,通过数组我可以像这样以正确的顺序从哈希加载我的对象:
array.each do |ids|
users = ids.map { |id| hash[id] }
# do smth
end
【问题讨论】:
-
您的分组标准是什么?我认为活动记录只返回数组,但你可以使用 ruby 来创建你想要的分组。
-
您的示例输入和输出不匹配。
-
我认为您至少需要扫描主数组并使用like this为每个元素调用数据库
标签: mysql sql ruby-on-rails ruby