如何使用factory_girl进行调试数据

时间:2015-09-04 14:59:30

标签: ruby-on-rails ruby ruby-on-rails-4 factory-bot

我使用Rails4

夹具

我将fixtures用于调试数据

但是 $ bin/rake db:fixtures:load FIXTURES_PATH=spec/fixtures
不运行before_validation和其他回调。

factory_girl

我使用factory_girl进行测试

$ bundle exec rspec spec/models/foo_spec.rb

种子

我知道如何在factory_girl中使用seed $ bundle exec rake db:seed

但我想仅将seed用于 主数据

问题

如何将factory_girl用于调试数据。我是否使用了什么命令?(rake ??spec或其他什么?)

1 个答案:

答案 0 :(得分:1)

制作一个使用工厂创建调试数据的rake任务。例如,如果您有一个名为Report的模型(和相应的工厂):

namespace :db do
  desc "Fill database with debug data"
  task :debug_data => :environment do

  puts "Destroy existing data?"
  if STDIN.gets.chomp.upcase == 'Y'
    if Rails.env.production?
      raise "\nI'm sorry, Dave, I can't do that.\n(You're asking me to drop your production database.)"
    end
    Report.destroy_all
  end

  FactoryGirl.create(:report, name: 'Fred')
  FactoryGirl.create(:report, name: 'Barney')
end

将此文件放入:lib/tasks/debug_data.rake 使用以下方法执行: bundle exec rake db:debug_data