Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 一次插入多条记录_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby 一次插入多条记录

Ruby 一次插入多条记录,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有一组单选按钮返回以下哈希: {"1"=>"1", "3"=>"2"} 键代表事件id,值代表regoption id。我需要将它们一次全部插入到订阅表中。 我尝试了以下方法: params[:children].each do |child| Subscription.create({:event_id => child[0], :regoption_id => child[1]}).save end 这只保存了一个无线组,而不是散列中的全部。有什么办

我有一组单选按钮返回以下哈希:

{"1"=>"1", "3"=>"2"}
键代表事件id,值代表regoption id。我需要将它们一次全部插入到订阅表中。 我尝试了以下方法:

params[:children].each do |child|    
  Subscription.create({:event_id => child[0], :regoption_id => child[1]}).save
end
这只保存了一个无线组,而不是散列中的全部。有什么办法吗?

有一个名为gem的工具,可以有效地插入多条记录。它可以与许多流行的DB后端一起工作,并且可以对大多数DB后端做正确的事情。这正是您想要的:它接受一个对象实例数组或一个值哈希数组,并在一条语句中将它们插入到一个表中

下面是gem文档中的一个使用示例:

books = []
10.times do |i| 
  books << Book.new(:name => "book #{i}")
end
Book.import books
books=[]
10.我做了多少次
书籍“书籍{i}”)
结束
进口书

仅供参考,
create
方法自己执行
save
。好的,谢谢!但问题仍然存在;)我试过了,但我的设置不起作用。它仍然只插入最后一条记录。我决定采用“原始sql”解决方案,而且效果很好。显然不可能进行验证/回调,但在这种情况下这是可以的。