带有回形针的 If 语句 | Ruby on Rails

Posted

技术标签:

【中文标题】带有回形针的 If 语句 | Ruby on Rails【英文标题】:If-Statement with Paperclip | Ruby on Rails 【发布时间】:2012-01-01 19:30:17 【问题描述】:

我必须创建 300 像素宽度的缩略图如果文件是图片('image/jpeg'、'image/png'、'image/gif')和 如果文件具有其他扩展名,则为缩略图。我正在使用 Paperclip 进行文件上传(它在没有条件的情况下工作得很好......)。

:file 是上传的文件,如果是图片,Paperclip 应该创建一个 medium 版本。

class Paperplanes < ActiveRecord::Base
   if validates_attachment_content_type :file, :content_type => ['image/jpeg', 'image/png', 'image/gif']
      has_attached_file :file, :styles =>  :medium => "x300>" 
   else
      has_attached_file :file
   end
end

但这似乎不起作用。希望大家能找到解决办法。谢了!

【问题讨论】:

【参考方案1】:

如果不是图像,缩略图创建应该会失败。如果whiny 不正确,那应该就结束了。 (大多数情况下;然后您需要检查缩略图是否存在,根据this answer。)

如果您想完全控制该过程,您可以打开默认的Thumbnail processor 以添加/更改其正常选项/处理,或者将其用作创建自己的处理器的指南(请参阅“后期处理” Paperclip's github page 部分)。

您还可以使用lambda style 玩一些游戏,也许为非图像文件创建一个默认的“非图像”缩略图。

【讨论】:

以上是关于带有回形针的 If 语句 | Ruby on Rails的主要内容,如果未能解决你的问题,请参考以下文章

Ruby On Rails:获取回形针图像的 md5 哈希

使用 ruby​​zip 在嵌套模型中下载回形针附件

警告:在 ruby​​ 2.7.2 中使用回形针时,URI.escape 已过时

Ruby on Rails:未定义的方法,检查boolean if true语句

Faraday::ConnectionFailed, Connection denied - connect(2) for “localhost” port 9200 Error Ruby on Ra

如何在 Ruby-on-Rails 中生成 PDF 表单