我在 Rails 4 中有一个问题。
在我的factory.rb我有类似的东西:
factory :user do
sequence(:name) { |n| "User #{n}" }
sequence(:email) { |n| "user_#{n}@example.org" }
password 'foobar'
password_confirmation 'foobar'
end
问题,我不知道在创建用户后添加关系。
当我创建一个用户并且他是主持人时,我为用户分配了这样的角色:
u.add_role_id!(11)
我有不同的关系表,带有user_id和role_id并且在用户模型上我有方法。
def add_role_id!(role)
role_user_relationship.create!(role_id: Role.find(role).id)
end
我如何在factory.rb上做到这一点?
现在我现在要做的事情:
u = FactoryGirl.create(:moderator)
u.add_role_id!(11)
我想默认分配factory.rb
我是怎么做到的?!
谢谢大家!
马努
解决方案:
我必须添加这些行:
after(:create) do |u|
u.add_roles_ids!([10,20,30])
end
使用整个代码:
factory :user do
sequence(:name) { |n| "User #{n}" }
sequence(:email) { |n| "user_#{n}@mudev.org" }
password 'foobar'
password_confirmation 'foobar'
after(:create) do |u|
u.add_roles_ids!([10,20,30])
end
end
感谢彼得·阿尔文