2013-06-24 4 views
2

я следовать официальному GitHub примеру хранилища, но когда я определить условие о методе версии, я всегда получаю:Carrierwave условной версию ошибка метания аргумента

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 

Если Я удаляю условия, в которых это работает ... Любая идея о том, что это может быть? Благодаря

ответ

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 
+0

Отлично! Это решило мою проблему! Спасибо :-) – Gozup

+0

его не работает для меня, я остановился где-то посередине. – ratnakar

+0

Они должны обновить документы, чтобы уточнить это. Это не очевидно. Просто кажется любопытным, что они включают параметр для этого метода. – anothercoder