我有一个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::Category
有15 columns
由于
答案 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)