1

我一直在使用种子库 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。

4

1 回答 1

1

简短的回答:seed_fu 和 seedbank 一起工作没有任何问题。

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

(我会把这个问题留给任何想知道你是否可以一起使用这些宝石的人。TL;DR:是的。)

于 2013-08-27T13:00:47.627 回答