fixture_file_upload给出" {***}的扩展名与其内容不匹配"来自paperclip model rails 4.2.1

时间:2017-04-24 18:29:37

标签: ruby-on-rails rspec paperclip

我在使用rails fixture_file_upload上传回形针文档时出现此问题(在升级rails版本之后)

了解回形针4.0及更高版本需要验证content_type,即使在验证后或明确请求File has an extension that does not match its contents之后,我的规格仍会失败并显示错误:do_not_validate_attachment_file_type

我在多个(所有我的)回形针模型中都有这个场景......

一个例子如下:

型号:

class SignatureFile < ActiveRecord::Base
  ...
  has_attached_file :file
  VALID_CONTENT_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/gif"]

  validates_attachment :file, content_type: { content_type: VALID_CONTENT_TYPES },
                              convert_options: { all: '-auto-orient' },
                              processors: [:compression]
  ...
end

规格:

image = fixture_file_upload('spec/fixtures/mobile_api/sample.jpg', 'image/jpg')

当我尝试保存上面的image时,它会失败,image.errors.full_messages会给出:

  

&#34;文件的扩展名与其内容不匹配&#34;

我只想说我有一堆像以前一样的场景,之前在升级之前已经过去了。

以下是我所拥有的相关宝石的版本:

  • gem&#39; rails&#39;,&#39; 4.2.7.1&#39;
  • gem&#39; paperclip&#39;,&#39; 4.2.1&#39;
  • gem&#39; paperclip-compression&#39;,&#39; 0.3.7&#39;
  • gem&#39; rspec-rails&#39;,&#39; 3.4.2&#39;

我可以在这里找到什么?

1 个答案:

答案 0 :(得分:0)

您可能遗漏了file,遗憾的是错误在这些情况下并不准确。请阅读paperclip docs