不知道如何建立任务&db; seed_fu'

时间:2016-03-17 14:39:09

标签: ruby-on-rails ruby ruby-on-rails-4 rake

我刚刚将seed-fu gem添加到我的应用程序中以播种我的测试数据库:

group :test do
  gem 'seed-fu'
end

我做了一个自定义rake任务(在/lib/tasks/db.rake中),用于播种我的测试数据库:

namespace :db do

  desc "seed_fu only in test-database"
  task seed_fu_test: :environment do
    Rails.env = 'test'
    puts "Seeding will be made in test-base ONLY!"
    Rake::Task["db:seed_fu"].execute
  end

end

如果我rake -T | grep seed,那么我的新定制任务将显示在其他种子任务中:

rake db:seed                            # Load the seed data from db/seeds.rb
rake db:seed_fu                         # Loads seed data for the current environment
rake db:seed_fu_test                    # seed_fu only in test-database

现在当我rake db:seed_fu_test时,我得到了

  

rake aborted!

     

不知道如何构建任务&db; seed_fu'

但是当我这样做时

rake db:seed_fu RAILS_ENV='test'

然后seed_fu很好地为我的测试数据库播种。

1 个答案:

答案 0 :(得分:0)

想出来 - 问题出在我的Gemfile中。因为我将seed-fu gem添加到test - 组然后在development - 环境中,这也是我运行rake db:seed_fu_test任务的默认值,所以没有看到seed_fu gem。

因此,当将gem 'seed-fu'行移动到Gemfile中的:development - 组时,问题就解决了。