【发布时间】:2011-06-24 19:06:51
【问题描述】:
我的 Gemfile 中有一个 Rails 3 项目,其中包含以下内容...
group :development, :test do
gem 'factory_girl_rails', '~> 1.1.beta1'
end
我在 spec/factories.rb 中也有几个工厂定义,我的测试已成功使用它们。我想不时使用这些工厂来填充我的开发数据库。
我是否可以让 Rail 的 db:fixtures:load rake 任务加载 spec/factories.rb 中定义的工厂,而不是 test/fixtures 中的 Yaml 固定装置?如果没有,factory_girl_rails 或 Rails 中是否还有另一个 rake 任务可以加载我的工厂定义生成的数据?
非常确定最好的方法是编写我自己的 rake 任务来完成此任务,但想先在这里检查。
【问题讨论】:
-
另一种方法是让您的
seeds文件为您加载此文件。只需在工厂前面加上if Rails.env == "test" -
@apneadiving 如果我输入的话是
if Rails.env == 'development'。另外,我必须&&if 条件和触发工厂数据加载的其他内容,因为我并不总是想在开发中加载工厂数据。自定义 rake 任务听起来可能比基于 seed.rb 的解决方案更可行。谢谢你。 -
转念一想,我将接受@apneadiving 的建议,只使用seeds.rb,因为工厂并不适合这种事情。希望我可以重用我的一些工厂代码来生成这些数据,但是哦。
-
太棒了。所以我把评论作为答案。