Using traits
Traits can also be passed in as a list of Symbols when you construct an instance from factory_bot.
factory :user do
name { "Friendly User" }
trait :active do
name { "John Doe" }
status { :active }
end
trait :admin do
admin { true }
end
end
# creates an admin user with :active status and name "Jon Snow"
create(:user, :admin, :active, name: "Jon Snow")
This ability works with build
, build_stubbed
, attributes_for
, and create
.
create_list
and build_list
methods are supported as well. Remember to pass
the number of instances to create/build as second parameter, as documented in
the "Building or Creating Multiple Records" section of this file.
factory :user do
name { "Friendly User" }
trait :active do
name { "John Doe" }
status { :active }
end
trait :admin do
admin { true }
end
end
# creates 3 admin users with :active status and name "Jon Snow"
create_list(:user, 3, :admin, :active, name: "Jon Snow")