Как правильно организовать хранения пользовательских файлов на сервере?

Здравствуйте.
Пользуюсь paperclip для загрузки файлов на сервер. При этом рассчитываю, что файлов будет много, поэтому хочется как то организовать пути сохранения файлов. Я пробовал делать так:
has_attached_file :file, url: '/downloads/:id/:basename.::extension'

и это работает, но хотелось бы разделить папки еще по категориям (загружаемые файлы belongs_to категории), но
has_attached_file :file, url: '/downloads/:category_id/:id/:basename.::extension'

уже не работает, ругается на category_id- неизвестный параметр. Хотелось бы еще для каждой даты заводить свою папку, но это я даже не знаю как сделать. В связи с этим вопрос: как отредактировать пути, по которым будут сохранятся файлы? Или, если не трудно, объясните как следует хранить файлы, может быть я слишком заморачиваюсь с этим? Заранее спасибо
  • Вопрос задан
  • 2794 просмотра
Решения вопроса 1
1. В initializer добавьте:
Paperclip.interpolates :category_id do |attachment, style|
    attachment.instance.category_id.to_s
end


Тогда ваш путь будет работать.

2. Не знаю, как у остальных, но мы предпочитаем хранить файлы
а) на AWS S3
б) использовать стандартные пути (в Paperclip это :rails_root/public/system/:class/:attachment/:id_partition/:style/:filename), ибо они не просто так называются стандартными.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы