2017-01-16 5 views
0

В настоящее время я использую Carrierwave для удаленного скачивания изображения. Это работает нормально. Я пытаюсь выяснить, как установить имя файла для чего-то другого, кроме того, что загружено с URL-адреса.Использование Carrierwave remote_image_url, как вы можете установить имя файла для использования?

Это в моей передней задачи:

@desk.desk_images.create(
     :file_name_to_use => "testing", 
     :remote_image_url => photo.url(size) 
    ) 

И в моей базе загрузчика: desk_image_uploader.rb

class DeskImageUploader < CarrierWave::Uploader::Base 

    include CarrierWave::MiniMagick 

    storage :fog 

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

    version :thumb do 
    process resize_to_fill: [200, 150] 
    process :quality => 90 

    def full_filename(for_file = model.logo.file) 
     parts  = for_file.split('.') 
     extension = parts[-1] 
     name  = parts[0...-1].join('.') 
     "#{model.file_name_to_use}_#{version_name}.#{extension}" 
    end 

    end 
end 

desk_image.rb

class DeskImage < ActiveRecord::Base 
    belongs_to :desk 

    mount_uploader :image, DeskImageUploader 

    attr_accessor :file_name_to_use 
end 

Это не сохраняя соответствия в db. DeskImage.image хранит исходное имя файла, а не переопределение, которое я прошел «тестирование» ...

Кто-нибудь знает, как я могу настроить имя хранилища Carrierwave в db и использовать?

Спасибо

ответ

1

Хорошо, я разделась код немного, чтобы убедиться, что мы можем быть уверены, что нет никаких осложняющих факторов. Первый шаг - перемещение filename из блока version. Не могли бы вы попробовать:

class DeskImageUploader < CarrierWave::Uploader::Base 

    include CarrierWave::MiniMagick 

    storage :fog 

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

    version :thumb do 
    process resize_to_fill: [200, 150] 
    process :quality => 90  
    end 

    def filename 
    "test-#{model.id}.#{File.extname(super)}" 
    end 
end 
+0

Спасибо, но это, похоже, не сработало. – AnApprentice

+1

Можете ли вы поделиться полным кодом вашего загрузчика и как он установлен в вашей модели? – lobati

+0

Только что обновлено с полным кодом ... Что происходит сейчас, так это то, что база данных записывает исходное имя файла ... Где на S3 файл исходного файла хранится, но имя файла большого пальца переписывается, что означает, что приложение rails не может найдите большую версию. – AnApprentice

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

  • Нет связанных вопросов^_^