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

时间:2013-02-16 14:26:56

标签: ruby-on-rails ruby ruby-on-rails-3.2

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

1 个答案:

答案 0 :(得分:1)

尝试将Populator gem用于此类任务。它易于使用,您可以生成复杂的结构。 Screencast

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

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