2

公式の github リポジトリの例に従いますが、バージョン メソッドで条件を定義すると、常に次のようになります。

ArgumentError - wrong number of arguments (1 for 0):
(gem) carrierwave-0.8.0/lib/carrierwave/uploader/versions.rb:198:in `block in active_versions'
(gem) carrierwave-0.8.0/lib/carrierwave/uploader/versions.rb:192:in `active_versions'

ここに私のコード:

class PhotoUploader < CarrierWave::Uploader::Base

    include CarrierWave::MiniMagick
    storage :file

    version :thumb_75, :if => :is_user? do
        process :resize_to_fill => [75, 75]
    end

    version :thumb_87, :if => :is_question? do
        process :resize_to_fill => [87, 87]
    end

    protected
    def is_user?
        model.class.to_s == 'Photo'
    end

    protected
    def is_question?
        model.class.to_s == 'Question'
    end

end

条件を削除すると機能します...それが何であるかについて何か考えはありますか? ありがとう

4

1 に答える 1

6

引数を受け入れるにはis_user?、メソッドを作成する必要があります。is_question?

protected
def is_user?(picture)
    model.class.to_s == 'Photo'
end

protected
def is_question?(picture)
    model.class.to_s == 'Question'
end
于 2013-06-24T15:11:01.773 に答える