我正在编写一个Rake任务,用他们给我的一些模拟数据填充数据库,例如,如果有一个具有name,id和time_zone字段的Organization表,我想在我的rake中填充它任务,所以首先我创建了一个样本组织的数组:
SAMPLE_ORGANIZATIONS = [ '37 Signals', 'Fog Creek']
然后从中填充数据库的方法:
def create_organizations
SAMPLE_ORGANIZATIONS.each_with_index {|item, index|
Organization.first_or_create(
name: item,
time_zone: 'Central'
)
}
end
这是一个好方法吗?我怎样才能改进它?
答案 0 :(得分:2)
有几个选择。
将您的模拟代码放入db / seeds.rb,然后运行rake db:seed
灯具。在yaml文件中定义数据,然后运行rake db:fixtures:load
。
工厂女孩。可能是最好的选择,但稍微复杂一些。将FactoryGirl代码放在db / seeds.rb中,并像#1一样使用它。