我想知道,是否可以在Ruby on Rails
中一次查找或创建多个对象?
执行如下操作(我知道它不是RoR的有效代码,但只是想知道可以做这样的事情吗?)
class User
end
hash = []
hash << { name: 'Bob'}
hash << { name: 'Jim'}
User.where(hash).first_or_create!
这意味着minimise number of queries
需要做这样的事情
hash.map {|u| User.where(u).first_or_create!}
答案 0 :(得分:2)
可能你可以试试这个:
将gem gem添加到您的gemfile:
gem 'activerecord-import', '~> 0.10.0'
然后在你的控制器中:
create_user = []
create_user << {name: "Bob"}
create_user << {name: "jim"}
User.import create_user
这将只在您的数据库中插入一个查询。
答案 1 :(得分:-1)
这在Ruby中是可行的。请检查以下代码,
hash = []
hash << { name: 'Bob' }
hash << { name: 'Jim' }
User.create(hash)
将根据您在哈希中添加的数据创建两个用户。此外,字典的键应该基于列名。