Я бы посоветовал вам использовать для этого Скрепку .С его помощью вы можете определить несколько размеров для вашего изображения.Вам нужно установить ImageMagick, чтобы это работало.Ваша рубиновая модель будет иметь такую строку:
has_attached_file :image, :styles => { :small => "150x150>", :medium => "400x400#", :large => "640x640" }
По умолчанию используется изменение размера до минимального размера и сохранение соотношения сторон.Вы можете использовать некоторые опции, чтобы изменить это:
- трейлинг #, миниатюра будет обрезана по центру, обеспечивая требуемые размеры.
- трейлинг>, миниатюра будет изменена, только если она в настоящее времязапрашиваемые размеры больше.
В своем коде вы можете запросить изображение, используя image_tag @model.image.url(:small)
на ваш взгляд.
Райан Бейтс имеет превосходный railscast по этомуесли вы хотите больше информации.Скрепка также имеет обширную вики на GitHub.