首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用factory_girl与PaperClip 4.0

使用factory_girl与PaperClip 4.0
EN

Stack Overflow用户
提问于 2014-02-03 22:29:40
回答 1查看 1.9K关注 0票数 8

有人知道使用PaperClip创建factory_girl 4.0附件的正确方法,从而绕过任何PaperClip处理和验证吗?

我以前在工厂里只做了以下几件事:

代码语言:javascript
复制
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之后,我现在得到一个验证错误:

代码语言:javascript
复制
ActiveRecord::RecordInvalid: Validation failed: Image translation missing: en.activerecord.errors.models.attachment.attributes.supporting_documentation.spoofed_media_type

注意:关于PaperClip 3.X的最初讨论如下:如何使用“工厂女孩”生成剪纸夹附件?

EN

回答 1

Stack Overflow用户

发布于 2014-05-01 22:32:42

这个问题似乎是由检波器引起的。

回形针试图找到你上传的“文件”的mime类型。如果没有,则无法通过验证来保护您免受文件类型欺骗。

我自己还没有尝试过这种方法,但是您最好的选择是使用一个真正的文件,并使用来自fixture_file_uploadActionDispatch::TestProcess方法来设置它。

代码语言:javascript
复制
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

您需要将ActionDispatch::TestProcess包含在test_helper.rb中。

这是第一次发布这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21539189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档