Использование factory_girl с PaperClip 4.0

Кто-нибудь знает, как правильно создавать вложения PaperClip 4.0 с factory_girl, минуя любую обработку и проверку PaperClip?

Раньше у меня на фабрике было просто следующее:

factory :attachment do
  supporting_documentation_file_name { 'test.pdf' }
  supporting_documentation_content_type { 'application/pdf' }
  supporting_documentation_file_size { 1024 }
  # ...
end

По сути, это заставило бы PaperClip думать, что это действительное вложение.

После обновления с 3.5.3 до 4.0 я получаю сообщение об ошибке проверки:

ActiveRecord::RecordInvalid: Validation failed: Image translation missing: en.activerecord.errors.models.attachment.attributes.supporting_documentation.spoofed_media_type

ПРИМЕЧАНИЕ. Исходное обсуждение PaperClip 3.X находится здесь: Как с помощью Factory Girl создать скрепку?


person steakchaser    schedule 03.02.2014    source источник
comment
Открытая проблема в репозитории Paperclip: github.com/gotitbot/paperclip/issues/1432   -  person steakchaser    schedule 07.02.2014


Ответы (1)


Проблема, по всей видимости, вызвана person Hayden Ball    schedule 01.05.2014

comment
Хм, неужели pivotallabs.com/ все еще применяются? - person phillbaker; 10.05.2014
comment
Я считаю, что это причина хука after_create, который правильно закрывает временный файл? Хотя я могу ошибаться ... - person Hayden Ball; 11.05.2014
comment
Вы можете объяснить, как работает хук after_create? У меня проблемы с тем, чтобы это работало. Что должно быть proxy? Когда я запускаю свой тест, proxy равно нулю. - person Daniel Bonnell; 29.05.2015
comment
after_create должен запуститься после того, как FactoryGirl создаст модель. Вторым параметром должен быть объект, который FactoryGirl использовала для создания модели. См. Раздел has_many в rubydoc.info/gems/factory_girl/file/ для более подробной информации. - person Hayden Ball; 31.05.2015