我正在努力实现最初对我来说似乎很简单的事情。在使用carrierwave的rails 3.0应用程序的上下文中。用户必须能够下载除 .exe 文件之外的任何类型的文档。在 Carriewave 中有白名单
def extension_white_list
%w(jpg jpeg gif png)
end
我希望也有一个黑名单,在我的情况下它会更容易。无论如何,这不是主要问题。
对于图像文件,我在上传器类中设置了 2 个版本。
version :thumb do
process :resize_to_fit => [50, 50]
end
version :small do
process :resize_to_fit => [125, 125]
end
我不得不承认我对这种语法有点困惑。什么样的红宝石代码“版本”定义。我的意思是,它不是一种方法,那么类中的那是什么?
我试图创建一个方法图像?
def image?
%w(jpg jpeg gif png).include?(filename.extension.to_s)
end
然后从版本代码中调用它,以防止在文件不是图像时创建这些版本
version :thumb do
if image?
process :resize_to_fit => [50, 50]
end
end
但是这段代码会引发错误
undefined method `image?' for #<Class:0x000001017274f8>
任何帮助,将不胜感激。
谢谢。