Возможно ли использовать ассоциацию как значение для другой ассоциации в признаке?Как создать ассоциацию в FactoryGirl со значением lazy-оценено от другой ассоциации FactoryGirl
Позвольте мне описать (упрощенный) пример. У меня есть 3 модели
User
Forum
(belongs_to :forum
)Thread
(belongs_to :forum
,belongs_to :user
)
Пожалуйста, обратите внимание, что Thread
содержит user_id
, он не принадлежит к User
через Forum
(в настоящее время я не могу изменить такое ограничение).
То, что я хотел бы знать, является, если есть способ, чтобы определить черту, как один
FactoryGirl.define do
factory :thread do
trait :with_forum do
association :user
# Lazy-evaluate the value of user to the previously created factory
# THIS IS THE KEY POINT: I want 'user' to be the factory created at the previous line
association :forum, user: user
end
end
end
Что черта предполагается сделать, это создать пользователя и связать его с резьбой. Затем он должен создать форум, но пользователь должен быть тем же самым экземпляром, который был ранее создан.
Есть в основном две причины:
- Пользователь связан с форумом такой же нити
- Я не хочу, чтобы создать две фабрики пользователя на каскаде
Любой идея? Я пытался использовать ленивую оценку, но не мог использовать ее с ассоциациями.