factory_bot_rails: factories loaded twice - already defined error

Short version: I was adding a new gem into my Gemfile which caused my Gemfile.lock to be updated. I’m no longer able to use rake or start-up rails because my factories are being included twice. After removing the new gem and trying different versions of gems, I was able to isolate the problem to the changes between these versions.

Fine factory_girl (2.0.2) factory_girl_rails (1.1.0)

Problems factory_girl (2.1.0) factory_girl_rails (1.2.0)

It’s not clear to me how to debug this further. Any advice?

I am using rspec and am including the factories in my spec_helper. If I comment out everything in my spec_helper, I still have an issue.

Here is the output from caller.join(“\n”)

/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `block in require'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
/Users/me/Documents/rails/my_project/spec/factories/courses.rb:1:in `<top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `block in load'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl-2.1.0/lib/factory_girl/find_definitions.rb:20:in `block (2 levels) in find_definitions'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl-2.1.0/lib/factory_girl/find_definitions.rb:19:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl-2.1.0/lib/factory_girl/find_definitions.rb:19:in `block in find_definitions'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl-2.1.0/lib/factory_girl/find_definitions.rb:15:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl-2.1.0/lib/factory_girl/find_definitions.rb:15:in `find_definitions'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/factory_girl_rails-1.2.0/lib/factory_girl_rails/railtie.rb:12:in `block in <class:Railtie>'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/lazy_load_hooks.rb:34:in `call'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/lazy_load_hooks.rb:42:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/application/finisher.rb:46:in `block in <module:Finisher>'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `block in run_initializers'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'
/Users/me/Documents/rails/my_project/config/environment.rb:5:in `<top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `block in require'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/application.rb:103:in `require_environment!'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/railties-3.0.9/lib/rails/application.rb:218:in `block in initialize_tasks'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/bin/rake:19:in `load'
/Users/me/.rvm/gems/ruby-1.9.2-p180@rails3/bin/rake:19:in `<main>

About this issue

  • Original URL
  • State: closed
  • Created 13 years ago
  • Reactions: 1
  • Comments: 16 (8 by maintainers)

Most upvoted comments

Are you invoking FactoryGirl.find_definitions anywhere, maybe in spec_helper.rb or features/support/env.rb?