Подтвердить что ты не робот

Undefined метод after_create с FactoryGirl

Я пытаюсь определить отношения has_many в FactoryGirl, используя обратный вызов after_create, например, в /spec/factories/emails.rb:

FactoryGirl.define do
    factory :email do
        after_create do |email|
            email.attachments << FactoryGirl.build(:attachment)
        end
    end
end

Вложение определено в отдельном factory/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

Использование вложения в моих спецификациях работает абсолютно нормально, поэтому я уверен, что factory для этого не проблема, однако, когда я пытаюсь создать электронное письмо из factory, я получаю следующее исключение брошено:

Failure/Error: email = FactoryGirl.create(:email)
    NoMethodError:
        undefined method `after_create=' for #<Email:0x007ff0943eb8e0>

Я немного теряю, что делать, не может показаться, что кто-то еще получает ту же ошибку.

4b9b3361

Ответ 1

FactoryGirl недавно изменил синтаксис для обратных вызовов. Я думаю, что следующее будет работать:

FactoryGirl.define do
  factory :email do
    after(:create) do |email|
      email.attachments << FactoryGirl.build(:attachment)
    end
  end
end