Задать вопрос

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

Здравствуйте.
Пользуюсь 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- неизвестный параметр. Хотелось бы еще для каждой даты заводить свою папку, но это я даже не знаю как сделать. В связи с этим вопрос: как отредактировать пути, по которым будут сохранятся файлы? Или, если не трудно, объясните как следует хранить файлы, может быть я слишком заморачиваюсь с этим? Заранее спасибо
  • Вопрос задан
  • 2796 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Thinknetica
    Оптимизация Ruby/Rails-приложений
    9 недель
    Далее
Решения вопроса 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), ибо они не просто так называются стандартными.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы