Question

I have been using the seedbank gem to give my Rails seeds some structure (i.e. environment specific seed folders, one seed file per model, order dependencies etc.)

Now I came across the seed_fu gem which among other things makes it easy and expressive to say "seed these records, and if one with that id exists, update the other fields". E.g:

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

I can achieve the same result with some cumbersome ActiveRecord calls in my seed files, but I would much rather use the nice syntax provided by seed_fu. Additionally, I want to keep using the features seedbank gives me. Another rationale is that I may migrate only part of my seed files to the other syntax and that it makes no sense to use two rake commands side by side.

If I just put the above code in my db/seeds/categories.seeds.rb file and run rake db:seed:categories i get the error undefined method 'seed'. I guess I would somehow need to import the seed method from SeedFu:ActiveRecordExtension, but I don't know how.

I'm on Rails 3.2.13 and using the newest version of seed_fu straight from the github repo.

Was it helpful?

Solution

Short answer: seed_fu and seedbank work together without any problem.

I was using the zeus gem and hadn't reloaded my Rails environment so the seed_fu DSL just wasn't loaded yet.

(I will leave the question here for anyone wondering if you can use these gems together. TL;DR: yes.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top