我正在尝试使用 after_create 回调在 FactoryGirl 中定义 has_many 关系,就像在 /spec/factories/emails.rb 中一样:
FactoryGirl.define do
factory :email do
after_create do |email|
email.attachments << FactoryGirl.build(:attachment)
end
end
end
附件在单独的工厂 /spec/factories/attachment.rb 中定义:
FactoryGirl.define do
factory :attachment do
# Attach the file to paperclip
file { fixture_file_upload(Rails.root.join('spec', 'support', 'myimage.png'), 'image/png') }
end
end
在我的规范中使用 :attachment 工作得很好,所以我相信工厂不是问题所在,但是当我尝试从工厂创建一个 :email 时,我会抛出以下异常:
Failure/Error: email = FactoryGirl.create(:email)
NoMethodError:
undefined method `after_create=' for #<Email:0x007ff0943eb8e0>
我对该怎么做有点茫然,似乎找不到其他人得到同样的错误。