Имам следното фабрично момиче за създаване на потребител:
FactoryGirl.define do
factory :user do
first_name 'Colin'
last_name 'Ambler'
password 'dell13a1'
address_zip '60657'
trait :event_operator do
role Role.find_or_create_by(role_title: "Event Operator", name: "event_operator")
email "[email protected]"
end
trait :athletic_trainer do
role Role.find_or_create_by(role_title: "Athletic Trainer", name: "athletic_trainer")
email "[email protected]"
end
end
end
Както можете да видите, използвам trait
s за определяне на ролята на потребителя и настройка на различен имейл адрес.
Имам друг модел, наречен Event
, едно събитие принадлежи на athletic_trainer
, което е името на асоциацията, то просто сочи към потребителския модел, така че използвам Factory Girl за създаване на събитието по следния начин:
FactoryGirl.define do
factory :event do
event_type Event.event_types[:tournament]
sport Event.sports[:lacrosse]
event_title "NXT Cup"
event_logo { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec', 'support', 'images', 'nxt_cup_logo.png')) }
gender Event.genders[:boys]
event_pay_rate 40
event_participant_numbers 3
event_feature_photo { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec', 'support', 'images', 'nxt_cup_feature.jpg')) }
event_description "We roll out the red carpet for North America's top youth talent. The nations top youth teams descend on the premier facilities in the Philadelphia region to battle it out and stake claim to one of the summers most highly coveted trophies...the NXT Cup."
event_operator
end
end
както можете да видите, добавям event_operator
в края на фабричното момиче на събитието за указване на потребителската асоциация, но по този начин нямам достъп до потребителя, свързан с фабричното момиче.
възможно ли е да изпратите athletic_trainer като параметър към фабричното момиче на събитието? Искам да кажа, че искам да създам потребителя с помощта на factory girl и след това да създам събитието, но да асоциирам потребителя, който току-що създадох, възможно ли е?