ActiveRecord的创建:传递属性的数组 [英] ActiveRecord create: pass in an array of attributes
本文介绍了ActiveRecord的创建:传递属性的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道是否有一个Rails的方式通过传递属性的数组来创建多个记录。
有关实例,而不是,
MyModel.create!(attr_1:some_attr,attr_2:1)
MyModel.create!(attr_1:some_attr,attr_2:2)
MyModel.create!(attr_1:some_attr,attr_2:3)
MyModel.create!(attr_1:some_attr,attr_2:4)
我想这样做是这样的:
MyModel.create!(attr_1:some_attr,attr_2:[1,2,3,4])
不过,这是行不通的。有没有一种类似的方式来做到这一点不用循环?
解决方案
据文档,你可以的 创建
从哈希数组记录:
的属性参数可以是为一个或哈希的数组 哈希值。这些哈希描述在属于对象的属性 要创建
MyModel.create([{attr_1:some_attr,attr_2:4},{attr_1:some_attr,attr_2:5}])
I would like to know if there is a Rails way to create multiple records by passing in an array of attributes.
For instance, instead of
MyModel.create!(attr_1: some_attr, attr_2: 1)
MyModel.create!(attr_1: some_attr, attr_2: 2)
MyModel.create!(attr_1: some_attr, attr_2: 3)
MyModel.create!(attr_1: some_attr, attr_2: 4)
I would like to do something like:
MyModel.create!(attr_1: some_attr, attr_2: [1,2,3,4])
But it does not work. Is there a similar way to achieve this without looping?
解决方案
According the documentation you can create
records from an array of hashes:
The attributes parameter can be either be a Hash or an Array of Hashes. These Hashes describe the attributes on the objects that are to be created.
MyModel.create([{attr_1: some_attr, attr_2: 4}, {attr_1: some_attr, attr_2: 5}])
这篇关于ActiveRecord的创建:传递属性的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文