Я читаю документацию FactoryBot здесь: https://www.rubydoc.info/gems/factory_bot/file/GETTING_STARTED.md
У меня есть пользователи и роли, и это отношение has_and_belongs_to_many.Я пробовал много шагов из документации, чтобы установить это отношение, но ничего не работает.
Сначала я попробовал эту технику:
FactoryBot.define do
factory :role do
name { "marketing" }
factory :admin_role do
name { "admin" }
end
end
end
FactoryBot.define do
factory :user, aliases: [:marketing] do
email { 'marketing@mysite.io' }
password { '123456' }
password_confirmation { '123456' }
association :role
end
end
Но она дает мне:
NoMethodError: undefined method `role=' for #<User:0x007f9743449198>
Во-вторых, я попробовал эту технику:
FactoryBot.define do
factory :role do
name { "marketing" }
factory :admin_role do
name { "admin" }
end
end
end
FactoryBot.define do
factory :user, aliases: [:marketing] do
email { 'marketing@mysite.io' }
password { '123456' }
password_confirmation { '123456' }
role
end
end
Но снова я получаю эту ошибку:
NoMethodError: undefined method `role=' for #<User:0x007f9743449198>
В-третьих, я попробовал эту технику множественного отношения:
FactoryBot.define do
factory :role do
name { "marketing" }
factory :admin_role do
name { "admin" }
end
end
end
FactoryBot.define do
factory :user, aliases: [:marketing] do
email { 'marketing@mysite.io' }
password { '123456' }
password_confirmation { '123456' }
role
end
end
Я получаю эту ошибку:
ArgumentError: Trait not registered: roles
Тем не менее, когда я читаю документацию, он предлагает использовать эти методы.Так что я делаю не так?