Se você tiver um controle deslizante, talvez queira definir resize_to_fit
quando a orientação da imagem é paisagem e resize_to_fill
quando é retrato. Isso é o que o Airbnb faz pelo controle deslizante de fotos.
Para fazer isso, use isso em seu CarrierWave Uploader (funciona com RMagick, pode ser adaptado para MiniMagick)
version :slider do
process :create_slider_version
end
def create_slider_version
img = Magick::Image.read(current_path)
width = img[0].columns
height = img[0].rows
if width > height
# original is landscape
resize_to_fill(738, 492)
else
# original is portrait
resize_to_fit(738, 492)
end
end
O contexto do create_slider_version
método é CarrierWave :: Uploader :: Base (de onde current_path
vem o método ).