对不起,英语不好
我的ruby代码中有一个id数组。
例子:
[[10], [], [10, 1, 3], []]
我能装货吗 User
mysql表中的模型 users
在一个查询中保存分组?
例子:
[[#<User id=10>], [], [#<User id=10>, #<User id=1>, #<User id=3>], []]
环境:ruby 2.5.1 | rails 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
1条答案
按热度按时间dluptydi1#
这很简单:对数组使用展平方法:
编辑:不适合您的需要的最佳(递归)方法: