Gen*_*ene 10 development-environment ruby-on-rails factory-bot
我已经构建了一些精心制作的FactoryGirl工厂定义来测试Rails项目,为此它们运行良好.
我现在想用脚本(Ruby,Rake,等等......)使用相同的定义,用大量有效的,正确关联的记录来填充Rails开发数据库.
我确信这是一项常见任务,但无法找到有用的参考资料.
什么是最佳做法?如何进行?
说工厂在spec/factories.rb.接下来是什么?谢谢.
更新
还在苦苦挣扎.试过这个rake任务.
require 'factory_girl'
require 'spec/factories'
namespace :db do
desc "Fill database with trial data"
task :populate => :environment do
Rake::Task['db:reset'].invoke
50.times do |n|
# Make a consistent set of related records.
team = FactoryGirl.create(:team, :completed)
team.members << FactoryGirl.create(:member)
FactoryGirl.create(:design, :team => team)
end
end
end
Run Code Online (Sandbox Code Playgroud)
唉,这找不到我的factories.rb:
rake aborted!
cannot load such file -- spec/factories
Run Code Online (Sandbox Code Playgroud)
在其他任何地方,项目根相对要求路径工作正常.什么是秘密握手?
正如我在评论中提到的,这通常是种子数据的工作。如果您希望这些数据仅播种到您的开发数据库中,您可以seed通过执行以下操作来修改 Rake 任务:
namespace :db do
task :seed => :environment do
env_seed_file = File.join(Rails.root, 'db', 'seeds', "#{Rails.env}.rb")
load(env_seed_file) if File.exist?(env_seed_file)
end
end
Run Code Online (Sandbox Code Playgroud)
这将使您能够为每个环境创建一个文件(即 db/seeds/development.rb)。您还可以使用像种子库这样的 gem ,它为您提供特定于环境的种子文件以及 Rails 中已有内容的一些其他附加内容。
| 归档时间: |
|
| 查看次数: |
3794 次 |
| 最近记录: |