我正在努力用嵌套数组制作种子数据。 我有一个VatClass模型,其属性名称为valid_from,value。
vat_classes = [ ["empty", "1.1.2007", 0.0], ["reduced", "1.1.2007", 7.0], ["full", "1.1.2007", 19.0]]
vat_classes.each do |vat_class|
vat_class.each do |inner_element|
VatClass.where(name: inner_element[0]).first_or_create do |e| # pseudocode
VatClass.create(name: inner_element[0], valid_from: inner_element[1], vat_value: inner_element[2])
end
end
end
如果数据库中没有任何具有相同名称的先前记录,那么它应该基于vat_classes数组创建一个。我怎样才能做到这一点?
答案 0 :(得分:2)
第二个迭代器是多余的:
vat_classes = [
["empty", "1.1.2007", 0.0],
["reduced", "1.1.2007", 7.0],
["full", "1.1.2007", 19.0]
]
vat_classes.each do |vat_class|
VatClass.where(name: vat_class[0]).first_or_create do |e|
# no create is needed anymore: it is already created
e.update_attributes!(valid_from: vat_class[1], vat_value: vat_class[2])
end
end
希望它有所帮助。