Rails4について質問です。
私の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
ピーター・アルフヴィンに感謝