Я пытаюсь справиться с TDD в Rails. Я уверен, что это очень пустой вопрос, но здесь.Как определить has_many через отношения с FactoryGirl?
У меня есть следующие модели
class User
has_many :users_roles
has_many :roles, :through => :users_roles
end
class Role
has_many :users_roles
has_many :users, :through => :users_roles
end
class UserRole
belongs_to :user
belongs_to :role
end
У меня есть seed.rb, который генерирует роли, используемые приложением.
Role.create([
{ :name => "Admin" },
{ :name => "User" }
])
Я использую Factory Girl и пытаюсь определить пользователя с ролью. Я пробовал множество подходов и ссылался на другие вопросы по SO и другим источникам, но мне ничего не подошло.
Завод в настоящее время выглядит следующим образом
FactoryGirl.define do
factory :user do
sequence(:email) { |n| "User_Email_#{n}@example.com" }
trait :is_admin do
association roles << Role.find_by_name("Admin")
end
end
end
Как создать пользователь с соответствующей ролью в FactoryGirl, учитывая, что (а) они имеют has_many через отношения, и (б) роль уже существует в базе данных и не нужно создавать FactoryGirl.