我们正在将回复模型迁移到评论模型。与此同时,我希望能够拥有创建相同内容的 :reply 和 :comment 工厂。
例如,下面的代码是我现在正在使用的,但我不想“重复”代码,我希望它以某种方式成为完全相同的工厂,或者从另一个工厂调用一个。
FactoryBot.define do
factory :reply do
sequence(:text) { |n| "Reply #{n}" }
subject { create(:annotation) if subject_id.nil? && subject_type.nil? }
user_id { create(:user).id }
end
# just mirrors :reply for now, in prep for reply being replaced by comment
factory :comment, class: 'Reply' do
sequence(:text) { |n| "Reply #{n}" }
subject { create(:annotation) if subject_id.nil? && subject_type.nil? }
user_id { create(:user).id }
end
end