【发布时间】:2013-04-03 02:12:52
【问题描述】:
我已经为测试 Rails 项目构建了一些精心制作的 FactoryGirl 工厂定义,为此它们运行良好。
我现在想对脚本(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
唉,这找不到我的factories.rb:
rake aborted!
cannot load such file -- spec/factories
在其他任何地方,项目根相关的 require 路径都可以正常工作。什么是秘密握手?
【问题讨论】:
-
这通常是种子文件的工作。您是否有不想使用种子来填充数据库的原因?
-
从未听说过种子。请问可以提供参考吗? (大多数时候学习 Rails 就像是在寻宝......)
-
@ChrisSchmitz 非常感谢。这看起来更像是用于安装应用程序运行所需的基础数据,而不是仅提供一些记录以检查实施策略是否有效,这是我的目的。但我会研究它。
-
您有没有偶然将
gem factory_girl放在group test中?如果是这样,它也必须处于开发阶段,才能像你想要的那样使用它。
标签: ruby-on-rails development-environment factory-bot