最初はシンプルに見えたものを実現しようと少し苦労しています。carrierwaveを使用するrails3.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>
どんな助けでもいただければ幸いです。
ありがとう。