ActiveRecord的创建:传递属性的数组 [英] ActiveRecord create: pass in an array of attributes

查看:140
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆