В настоящее время я использую 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 и использовать?
Спасибо
Спасибо, но это, похоже, не сработало. – AnApprentice
Можете ли вы поделиться полным кодом вашего загрузчика и как он установлен в вашей модели? – lobati
Только что обновлено с полным кодом ... Что происходит сейчас, так это то, что база данных записывает исходное имя файла ... Где на S3 файл исходного файла хранится, но имя файла большого пальца переписывается, что означает, что приложение rails не может найдите большую версию. – AnApprentice