在我的Rails应用程序的User
控制器中,我有一个用示例people
填充用户数据库的操作:
def generate_samples
10.times do
p = current_user.people.create!(:first_name => Faker::Name.first_name,
:last_name => Faker::Name.last_name,
:email => Faker::Internet.email)
p.sample = true
p.save
end
flash[:success] = "Samples generated."
redirect_to people_path
end
困扰我的是,它需要Rails 83 SQL查询来生成这10个人。
有没有办法方便我的代码,也许只用一个查询创建X用户?
感谢您的帮助。
答案 0 :(得分:0)
Ya,您可以将其包装在活动记录事务中,以在单个事务中执行所有创建。有点像:
begin
ActiveRecord::Base.transaction do
10.times do
p = current_user.people.create!(:first_name => Faker::Name.first_name,
:last_name => Faker::Name.last_name,
:email => Faker::Internet.email)
p.sample = true
p.save
end
end
rescue => e
// throw your error and rollback
end