ste*_*ser 8 ruby-on-rails paperclip factory-bot
有没有人知道使用factory_girl创建PaperClip 4.0附件的正确方法,绕过任何PaperClip处理和验证?
我以前只能在我的工厂做以下事情:
factory :attachment do
supporting_documentation_file_name { 'test.pdf' }
supporting_documentation_content_type { 'application/pdf' }
supporting_documentation_file_size { 1024 }
# ...
end
Run Code Online (Sandbox Code Playgroud)
这基本上会让PaperClip认为有一个有效的附件.
从3.5.3升级到4.0后,我现在收到验证错误:
ActiveRecord::RecordInvalid: Validation failed: Image translation missing: en.activerecord.errors.models.attachment.attributes.supporting_documentation.spoofed_media_type
Run Code Online (Sandbox Code Playgroud)
注意:PaperClip 3.X的原始讨论在这里:如何使用工厂女孩生成回形针附件?
该问题似乎是由media_type_spoof_detector 中的第 61 行引起的。
Paperclip 正在尝试查找您上传的“文件”的 MIME 类型。如果没有,则验证失败,无法保护您免受文件类型欺骗。
我自己还没有尝试过,但也许您最好的选择是使用真实的文件,并fixture_file_upload
使用ActionDispatch::TestProcess
.
factory :attachment do
supporting_documentation { fixture_file_upload 'test.pdf', 'application/pdf' }
# This is to prevent Errno::EMFILE: Too many open files
after_create do |attachment, proxy|
proxy.supporting_documentation.close
end
end
Run Code Online (Sandbox Code Playgroud)
您需要包含ActionDispatch::TestProcess
在test_helper.rb
这是第一次在这里发布。
归档时间: |
|
查看次数: |
1753 次 |
最近记录: |