如何在Rails中使用数组的批量插入,如下所示:
name_list = [{"id" => 1,"name" => "bob"},{"id" => 2,"name" => "ted"}]
Namelist.import name_list
我不能插入上面数组的值。
答案 0 :(得分:1)
您可以将哈希数组传递给create
Namelist.create([{id: 1, name: "bob"}, {id: 2, name: "ted"}])
答案 1 :(得分:1)
您可以使用activerecord-import gem在单次插入查询中执行此操作。
name_list = [{"id" => 1,"name" => "bob"},{"id" => 2,"name" => "ted"}]
namelist_objects = []
name_list.each do |n|
namelist_objects << Namelist.new(n)
end
Namelist.import(namelist_objects)
其他人的上述答案可以正常工作,但会运行name_list.size
次插入查询,这在数组较大时是不可行的。
希望有所帮助!
答案 2 :(得分:0)
我不确定你想要什么,但也许它会帮助你。我想你想为name_lists创建Namelist,不是吗?
name_list = [{"id" => 1,"name" => "bob"},{"id" => 2,"name" => "ted"}]
name_list.map{|k| Namelist.create(k) }