2015-05-29 3 views
2

Провел весь день, пытаясь заставить его работать. Carrierwaves и мои файловые загрузки отлично работают при разработке/локальном компьютере, но при попытке моего сервера с помощью ENV: создание и развертывание через Capistrano файлы сохраняются только в uploads/tmp /, а не как указано в моем image_uploader.Carrierwave только сохраняет изображение как tmp в Production-env

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

Я попытался предложить несколько вещей, когда я искал, но ничто не решило эту проблему.

Кроме того, моя форма/сообщение не отправляет меня, но я остаюсь на той же странице, которую я загрузил, что не происходит, когда в разработке/локальном.

Вот некоторые части моего deploy.rb, что я думал, что бы решить эту проблему:

set :linked_dirs, fetch(:linked_dirs) + %w{public/uploads} 

task :symlink_uploads do run "ln -nfs #{shared_path}/uploads #{release_path}/public/uploads" end

after :restart, :seed_roles, :symlink_uploads 

Редактировать вопрос: Должен ли я переместить фотографии, загруженные из TMP в где я хочу, чтобы они были сохранены?

+0

Пожалуйста, пост 'конфиг/Инициализаторы/carrierwave.rb' –

+0

У меня нет атм. В моем image_uploader у меня есть файл: файл. Что делать? – Gurra

+0

что определено в cache_dir –

ответ

0

сделать следующее

и настроить

конфигурации/Инициализаторы/carrierwave.rb

CarrierWave.configure do |config| 
    config.root = Rails.root 
end 

https://github.com/carrierwaveuploader/carrierwave/wiki/how-to:-secure-upload

Здесь не требуется, чтобы изменить store_dir

если вы хотите изменить имя файла случайного HEX

https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Create-random-and-unique-filenames-for-all-versioned-files

поставить ниже код в вашем пользователя

def filename 
    "#{secure_token(10)}.#{file.extension}" if original_filename.present? 
    end 

    protected 
    def secure_token(length=16) 
    var = :"@#{mounted_as}_secure_token" 
    model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2)) 
    end 

Надеется, что это позволит решить проблему

+0

Спасибо за ваши усилия, но проблема все еще остается, файл сохраняется в uploads/tmp/1432906113-19521-2715/thumb_elg.jpg и не сохраняется. – Gurra

+0

Как правило, это заставляет его хранить его в общедоступном/общедоступном/ – Gurra

+0

ok получило это. Это имя неверно имени модели или было установлено как –

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