2015-10-13 2 views
0

Я пытаюсь использовать метод auto_orient RMagick для исправления мобильных загрузок. В настоящее время они повернуты на 90 градусов. Мой файл-загрузчик в настоящее время выглядит так.Carrierwave undefined metho auto_orient

class AvatarUploader < CarrierWave::Uploader::Base 

include CarrierWave::RMagick 

storage :fog 
def root 
    Rails.root.join 'public/' 
end 
include CarrierWave::MimeTypes 
process :set_content_type 

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

process :resize_to_fill => [200, 200] 

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

process :auto_orient 

def extension_white_list 
    %w(jpg jpeg gif png) 
end 

end 

Это дает мне ошибку

undefined local variable or method auto_orient for AvatarUploader:Class (NameError)

Я пробовал несколько решений, exif image rotation issue using carrierwave and rmagick to upload to s3, https://github.com/minimagick/minimagick/issues/68 , но не кости.

Кто-нибудь понял, что я делаю неправильно?

ответ

1

Попробуйте добавить следующее:

def auto_orient 
    manipulate! do |img| 
    img.auto_orient! 
    end 
end 

Как она стоит сейчас, то auto_orient процесс вы ссылки не существует в контексте, поэтому ошибка.

Редактировать: в соответствии с сообщением imagemagick github, которое вы опубликовали, auto_orient! может быть сломан. Вы могли бы использовать auto_orient вместо этого аналогичным образом (он просто создает новое изображение вместо того, чтобы изменять тот, который передан методу). Обратитесь к ссылкам, которые вы опубликовали для возможных решений, используя метод auto_orient.

+0

спасибо. Я ударил головой о стену. Я думал, что попробовал свой метод, но я, очевидно, ошибся. Я как раз собирался прокомментировать, что метод ударов был удален, но вы избили меня :) Спасибо – Loubot

Смежные вопросы