我一直在使用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。
答案 0 :(得分:1)
简短回答:seed_fu和种子库一起工作没有任何问题。
我正在使用zeus gem并且没有重新加载我的Rails环境,所以seed_fu DSL还没有加载。
(我会在这里留下问题,让所有人想知道你是否可以一起使用这些宝石.TL; DR:是的。)