【发布时间】:2012-02-26 19:58:13
【问题描述】:
我有这个 Rails 模型关联(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 个角色(目前),每个角色 :name 都是唯一的。所以角色数据库现在包含 3 个条目,用户、管理员、版主。
如何创建工厂以便创建用户、管理员和版主及其角色?
我想做这样的事情:
(角色 :name 已检查唯一性,因此不应为每个用户创建 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 的这种关联?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 testing factory-bot