У меня есть эта модель рельсов (has_many: through)
class User < ActiveRecord::Base
has_many :assignments
has_many :roles, :through => :assignments
end
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignments
end
В моем приложении только 3 роли (на данный момент), каждая роль: имя уникально. Таким образом, база данных ролей содержит 3 записи: пользователь, администратор, модератор.
Как я могу создать фабрики, чтобы я мог создавать пользователей, администраторов и модераторов и их роли?
Я бы хотел сделать что-то вроде:
(роль: имя проверяется на уникальность, поэтому он не должен создавать 1 запись роли на пользователя, вместо этого он должен создавать 1 назначение роли на пользователя.)
# Create my roles
FactoryGirl.create(:role, :name => 'admin')
FactoryGirl.create(:role, :name => 'user')
FactoryGirl.create(:role, :name => 'moderator')
# Create 10 users and 10 moderators assuming that the username is sequential or something
for i in 0..10
user = FactoryGirl.create(:user) # user.roles.first.name.eql? 'user' #should be true
mod = FactoryGirl.create(:moderator) # mod.roles.first.name.eql? 'moderator' #should be true
end
Как бы вы создали фабрики для моделирования этой ассоциации с FactoryGirl?