如何使用ActiveRecord Create创建多条记录Ruby on Rails?

时间:2015-03-11 10:20:18

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个ruby方法,它返回7列的多个记录。我想将这些记录插入到包含15列以上的另一个表中。

如何在模型中使用ActiveRecord Create方法插入这些记录以准确匹配具有相同列名的新表。

实施例

我有一个如下的模型方法:

def self.record_letter_group
  .....
end

在控制台中,当我尝试运行此方法时,它会返回以下记录

([#<Letter::Group User_ID: "sri", Code: "12345", Group_ID: 15>, 
  #<Letter::Group User_ID: "sri", Code: "12445", Group_ID: 15>,
  #<Letter::Group User_ID: "sri", Code: "12545", Group_ID: 15>,
  #<Letter::Group User_ID: "sri", Code: "12645", Group_ID: 15>,
  #<Letter::Group User_ID: "sri", Code: "12745", Group_ID: 15>,
])

我想做点什么,

save_records = Letter::Category.create(record_letter_group)

注意:此Letter::Category15 columns

由于

1 个答案:

答案 0 :(得分:1)

看起来应该是这样的:

# whitelist the attributes you want to save to "categories" table
valid_attributes = [ :User_ID, :Code, :Group_ID ]


record_letter_group_attributes = record_letter_group.map { |group| group.attributes.slice(*valid_attributes) }

save_records = Letter::Category.create(record_letter_group_attributes)