Я пытаюсь создать has_many: has_many отношения с заводской девушкой.Ошибка ассоциации самореференции FactoryGirl
Вот мои модели:
class User < ActiveRecord::Base
has_many :user_roles
has_many :roles, through: :user_roles
end
class UserRole < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
class Role < ActiveRecord::Base
has_many :user_roles
has_many :users, through: :user_roles
end
Вот фабрика для моего пользователя:
FactoryGirl.define do
factory :user do
user_name { Faker::Name.user_name }
trait :admin do
association :user, factory: :admin, strategy: :create
end
end
end
Вот фабрика для роли администратора:
FactoryGirl.define do
factory :admin, class: Role do
name 'admin'
end
end
Суть этого вопроса это:
trait :admin do
association :user, factory: :admin, strategy: :create
end
я вызвать его так:
FactoryGirl.create: пользователь,: админ
Но это дает мне:
FactoryGirl::AssociationDefinitionError: Self-referencing association 'user' in 'admin'
Почему это? И Как я могу сделать этого пользователя администратором? Должен ли я создать фабрику user_role
и создать ее?