【问题标题】:Looking for a good idea and a good Ruby structure寻找一个好主意和一个好的 Ruby 结构
【发布时间】:2013-02-16 14:26:55
【问题描述】:

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

我应该如何处理这个问题? 假设摘要表具有以下字段:id (auto generate by Rails) , organization_id, name, member_count

【问题讨论】:

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


    【解决方案1】:

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

    由于您不能使用这些,请使用选择一个随机父对象,或在哈希中按名称指定一个。

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

    【讨论】:

    • 谢谢,但由于“人们比我更好!”的原因和长时间的讨论。在工作中,他们告诉团队不要使用Faker和Populator!我不知道为什么,但如果我这样做,它将无法通过代码审查! :(
    • 如果他们知道原因,你为什么不向他们寻求建议?
    猜你喜欢
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2011-04-23
    相关资源
    最近更新 更多