How do I use factories from FactoryGirl in rails console
Solution 1:
I do this the following way:
-
Start the rails console in test environment in sandbox mode.
rails console -e test --sandbox
You need this for two reasons:
- Any changes you do are rolled back.
- If you already have some seed data it might happen that the factories will start the serialization of attributes from 1, but these records might already exist.
Then in the console:
-
Require FactoryBot (was called FactoryGirl):
require 'factory_bot'
-
Load the factory definitions:
FactoryBot.find_definitions
-
Include the FactoryBot methods to avoid prefixing all calls to FB with
FactoryBot
(create
instead ofFactoryBot.create
):include FactoryBot::Syntax::Methods
P.S. For fabrication gem you can load the definitions in the rails console with:
Fabrication.manager.load_definitions
Also require 'faker'
if you use it.
Solution 2:
To solve this problem ensure that the factory bot gem is specifed in your Gemfile similar to this
group :development, :test do
gem 'factory_bot_rails'
end
Then bundle install
.
This should make FactoryBot class available in the development console.
Hope this helps.