我一直在使用种子库 gem为我的 Rails 种子提供一些结构(即特定于环境的种子文件夹、每个模型一个种子文件、订单依赖项等)
现在我遇到了seed_fu gem,它使说“播种这些记录,如果存在具有该ID的记录,则更新其他字段”变得容易且富有表现力。例如:
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'
。我想我会以某种方式需要从 导入seed
方法SeedFu:ActiveRecordExtension
,但我不知道如何。
我在 Rails 3.2.13 上并直接使用来自 github repo 的最新版本的 seed_fu。