0

我写了这个方法:

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 个信号”,而不是第二行。我写错了吗?

我的目标是遍历该数组的成员并将它们插入数据库。

4

1 回答 1

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
于 2013-02-17T01:03:52.083 回答