【问题标题】:Is there a built-in rake task like db:fixtures:load in factory_girl_rails?factory_girl_rails 中是否有像 db:fixtures:load 这样的内置 rake 任务?
【发布时间】: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,因为工厂并不适合这种事情。希望我可以重用我的一些工厂代码来生成这些数据,但是哦。
  • 太棒了。所以我把评论作为答案。

标签: ruby-on-rails factory-bot


【解决方案1】:

另一种方法是让您的seeds.rb 文件为您加载此文件。

只需在工厂前面加上if Rails.env == "test"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 2014-11-07
    • 2018-07-26
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多