为什么在rake db:schema:load期间初始化Factory Girl

Tib*_*agy 1 rake ruby-on-rails database-schema factory-bot

我已经从Rails 3.2升级到Rails 4.1.12并且我收到了一条错误消息

rake db:drop db:create db:schema:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)

错误消息是由Factory Girl导致缺少表的SQL错误.但是为什么工厂女孩应该初始化db:schema:load

有趣的是,如果我降级到Rails 4.1.11,问题就会消失.

Mih*_*scu 7

FactoryGirl gem 的默认行为需要它.这就是它被初始化的原因.

您可以通过将gem定义更改为以下内容来更改此行为:

gem 'factory_girl_rails', :require => false
Run Code Online (Sandbox Code Playgroud)

然后,您将需要在您的spec_helper.rb:

require 'factory_girl_rails'
Run Code Online (Sandbox Code Playgroud)