ruby-on-rails - ActiveRecord 创建 : pass in an array of attributes

标签 ruby-on-rails 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])

但它不起作用。有没有类似的方法可以在不循环的情况下实现这一目标?

最佳答案

根据文档,您可以 create 来自散列数组的记录:

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}])

关于ruby-on-rails - ActiveRecord 创建 : pass in an array of attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001103/

相关文章:

ruby-on-rails - 对报告的建议

mysql - 与 Rails 一起迷失 has_many : through multiple search

html - 向 Rails 中的 simple_form 提交按钮添加图标

Ruby 按月和年分组

ruby-on-rails - rails : Could not load database configuration. 没有这样的文件 -

javascript - jQuery 回调将 Rails 用户值设置为 true

ruby-on-rails - RSolr::Error::Http (RSolr::Error::Http - 429

ruby-on-rails - 使用 ActiveRecord 范围进行多列计算?

ruby-on-rails - 如何在 Rails 中获取表中的下一个 ID

ruby-on-rails - activerecord sum 返回一个字符串?