我正在编写一个Rake任务来填充数据库以进行开发,以便使用一些数据。 (但在测试中我使用的是FactoryGirl,所以不要谈论它。)
因此,假设我的演示数据库中有两个示例组织,因此我已将它们定义为:
sample_organizations = [ '37 Signals', 'Fog Creek']
然后是一个小方法来填充数据库,如下所示:
def create_organizations
sample_organization.each { |item|
Organization.first_or_create(
name: item,
time_zone: 'Central'
)
}
end
所以好消息是,从现在起两个月后,如果我想添加第三个组织,我只需查看代码并在该数组中输入另一个组织名称。方法仍然有效并创建它。
现在开始提问:我有更多的桌子可以填充!例如, Summaries 表悬挂在Organization表之外,因此每个组织可以有很多Summaries,因此我们在Summary表中也有一个organization_id foreign key
来填充。
但是我仍然希望像create_summaries
这样的方法执行类似于上面create_organization
方法的方法,但这次填写Summaries表,而棘手的部分是填写表的organization_id字段。
我该如何处理?
让我们说Summaries表包含以下字段:id (auto generate by Rails) , organization_id, name, member_count
答案 0 :(得分:1)
尝试将Populator gem用于此类任务。它易于使用,您可以生成复杂的结构。 Screencast
由于您无法使用它们,请使用选择随机父对象,或在散列中按名称指定一个。
summaries = [{:name => "foo", :organization => "bar"}]