If-Statement with Paperclip | Ruby on Rails

时间:2012-01-01 19:30:18

标签: ruby if-statement paperclip paperclip-validation

我必须创建300px widht缩略图如果文件是图片('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

但这似乎不起作用。希望你们能找到解决方案。 THX!

1 个答案:

答案 0 :(得分:0)

如果它不是图像,缩略图创建应该失败。如果whiny不成立,那应该是它的结尾。 (大多数情况下,根据this answer,您需要检查缩略图的存在。)

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

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