我写了这个方法:
def create_demo_organizations
sample_organizations = [ '37 Signals', 'Fog Creek']
sample_organizations.each { |item|
Organization.first_or_create(
name: item,
time_zone: 'Central'
)
}
end
我希望它会为我创建两个组件中包含名称的组织,但是当我在UI管理工具中打开它时,我只能看到第一行是'37信号'而不是第二行。我写错了吗?
我的目标是遍历该数组的成员并将它们插入数据库中。
答案 0 :(得分:4)
首先尝试将活动记录代码与循环代码隔离开来。所以从:
开始sample_organizations.each do |item|
puts item
end
如果您打印两个项目,请添加更简单的AR呼叫:
sample_organizations.each do |item|
Organization.create(name: item)
end
最后:
sample_organizations.each do |item|
Organization.find_or_create(name: item)
end
编辑:
我认为您没有正确地呼叫first_or_create
。你可能想要这样的东西:
Organization.where(name: item).where(time_zone: 'Central').first_or_create