Как мне установить разные пути скрепок в зависимости от того, в разработке или в производстве в рельсах? - PullRequest
0 голосов
/ 30 июня 2010

Я использую Heroku для своей производственной среды, поэтому мне нужно загрузить файлы скрепки в разные каталоги.

Для разработки я хочу, чтобы она продолжалась в текущем / системном значении по умолчанию, а в процессе производства я хочу передать переменную: path в каталог / tmp для Heroku.

Как мне это сделать? Я предполагаю, что возможно установить что-то в файле environment / production.rb как переменную для: path, но я бы хотел увидеть, как это сделать правильно.

Спасибо.

Вот фрагмент моего контроллера для создания модели после передачи файла через многоэлементную форму:

def create
    @contact = Contact.create(params[:contact])

     unless @contact.vcard.path.blank?

           paperclip_vcard = File.new(@contact.vcard.path) 

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

К сожалению, Heroku не поддерживает хранение файлов, сгенерированных приложениями, на своих серверах (только для чтения), поэтому для вашей производственной среды вам придется найти какое-то внешнее (для Heroku) решение для хранения данных. Они предоставили подробную информацию о том, как использовать сервис Amazon S3 здесь , в качестве примера того, как это сделать.

0 голосов
/ 30 июня 2010

В модели, содержащей вложенный файл, есть метод, который, как вы говорите, содержит этот файл, некоторые параметры и т. Д. В этом методе вы можете передать параметр :path, который сообщит ему, где его сохранить.

Теперь нужно просто проверить ENV['RAILS_ENV'], чтобы выяснить, в какой среде вы находитесь, и соответственно задать путь.

...