如何使用字符串数组一次创建多个活动记录对象



我有一个字符串数组:

days = ["Monday", "Tuesday", "Wednesday"]

我想在数据库中创建一个以以下各项命名的 Day:

days.each do |day|
  Day.create(name: day)
end

然而,这并不那么可爱。过去,我已经能够通过使用 splat 将它们传递到attr_accessor来清理属性列表:

attr_accessor *ATTRIBUTES

我希望能够做这样的事情:

Day.create(name: *days)

类似的界面是否可用于活动记录?

您可以一次性创建它们:

Day.create(days.map { |day| {name: day} })

create文档提到:

创建一个对象(或多个对象)并将其保存到数据库(如果验证通过)。属性参数可以是 HashHashesArray

最新更新