如何在Rail控制台中使用FactoryGirl中的工厂

我在开发环境中使用rails控制台,我想使用工厂。 我怎样才能访问他们?

我曾尝试require "FactoryGirl"返回

 1.9.3p393 :301 > require "FactoryGirl" LoadError: cannot load such file -- FactoryGirl 

为了解决这个问题,请确保在您的Gemfile中指定了工厂女孩gem

 group :development, :test do gem 'factory_girl_rails' end 

然后bundle install

这应该使FactoryGirl类在开发控制台中可用。

希望这可以帮助。

我按照以下方式做到这一点:

  • 以沙箱模式在testing环境中启动rails控制台。

     rails console test --sandbox 

你需要这个有两个原因:

  1. 您所做的任何更改都会回滚。
  2. 如果已经有一些种子数据,可能会发生这样的情况:工厂将从1开始序列化属性,但是这些logging可能已经存在。

然后在控制台中:

  • 需要FactoryGirl:

     require 'factory_girl' 
  • 加载工厂定义:

     FactoryGirl.find_definitions 
  • 包括FactoryGirl方法以避免在FactoryGirlcreate而不是FactoryGirl.create )前面添加到FG的所有呼叫:

     include FactoryGirl::Syntax::Methods 

PS对于制作gem,您可以在轨道控制台中加载定义:

 Fabrication.manager.load_definitions 

如果你使用它也require 'faker'

您需要使用require 'factory_girl_rails' ,这是Rails正在使用的实际的Gem。 那gem将包括工厂女孩图书馆,使FactoryGirl可用。

你可以这样做,或者像在muttonlamb的回答中那样更新你的Gemfile来启动它。