Versiones condicionales / proceso con Carrierwave

Tengo esta clase de cargador

class ImageUploader < CarrierWave::Uploader::Base

  include CarrierWave::RMagick

  process :resize_to_limit => [300, 300]

  version :thumb do
    process :resize_to_limit => [50, 50]
  end

 ...

El cual procesará el archivo original a 300x300 y guardará una versión en miniatura.

Me gustaría poder hacer una versión pequeña / pulgar solo basada en un booleano en mi modelo?

Así que hice esto

if :icon_only?
 process :resize_to_limit => [50, 50]
else
  process :resize_to_limit => [300, 300]
end

protected

 def icon_only? picture
   model.icon_only?
 end

Pero siempre terminó en un procesamiento de 50x50. Incluso cuando me gustó esto

 def icon_only? picture
   false
 end

Puede que tenga mi sintaxis muy equivocada con el: pero también intenté preguntar

if icon_only?

Lo que me dijo que no había un nombre de método como ese. Estoy perdido ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta