寻找一个好主意和一个良好的Ruby结构

我正在编写一个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

尝试使用Populator gem来完成这样的任务。 它易于使用,您可以生成复杂的结构。 截屏 。

由于您不能使用它们,请使用选择随机父对象,或在散列中按名称指定一个。

 summaries = [{:name => "foo", :organization => "bar"}]