我使用Rails4
。
我将fixtures
用于调试数据。
但是
$ bin/rake db:fixtures:load FIXTURES_PATH=spec/fixtures
不运行before_validation
和其他回调。
我使用factory_girl
进行测试。
像
$ bundle exec rspec spec/models/foo_spec.rb
。
我知道如何在factory_girl
中使用seed
$ bundle exec rake db:seed
但我想仅将seed
用于 主数据。
如何将factory_girl
用于调试数据。我是否使用了什么命令?(rake ??
或spec
或其他什么?)
答案 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