将seed_fu与种子库一起使用

时间:2013-08-27 12:31:39

标签: ruby-on-rails ruby-on-rails-3.2 rails-activerecord monkeypatching seeding

我一直在使用seedbank gem为我的Rails种子提供一些结构(即特定于环境的种子文件夹,每个模型一个种子文件,顺序依赖等)。

现在我遇到了seed_fu gem,其中包括说“播种这些记录,并且如果存在具有该ID的记录,更新其他字段”,这使得它变得容易和富有表现力。 E.g:

Category.seed(:id,
  { :id => 1, :name => "Food" },
  { :id => 2, :name => "Drink" }
)

我可以在种子文件中使用一些繁琐的ActiveRecord调用来实现相同的结果,但我更愿意使用seed_fu提供的漂亮语法。另外,我想继续使用种子库给我的功能。另一个基本原理是我可能只将部分种子文件迁移到另一种语法,并且将两个rake命令并排使用是没有意义的。

如果我将上述代码放在我的db/seeds/categories.seeds.rb文件中并运行rake db:seed:categories,我会收到错误undefined method 'seed'。我想我会以某种方式从SeedFu:ActiveRecordExtension导入seed方法,但我不知道如何。

我正在使用Rails 3.2.13并直接从github repo使用最新版本的seed_fu。

1 个答案:

答案 0 :(得分:1)

简短回答:seed_fu和种子库一起工作没有任何问题。

我正在使用zeus gem并且没有重新加载我的Rails环境,所以seed_fu DSL还没有加载。

(我会在这里留下问题,让所有人想知道你是否可以一起使用这些宝石.TL; DR:是的。)