Активное хранилище - Добавление описания файла / текста - Ruby on Rails 5.2 - PullRequest
0 голосов
/ 12 декабря 2018

С выпуском Rails 5.2 популярный Paperclip gem устарел и теперь рекомендуется использовать Active Storage , который поставляется с Rails.Я начинаю новый проект и с легкостью настраиваю Active Storage, но моя проблема возникает при попытке добавить имя или описание к загружаемому файлу.

С помощью Paperclip я бы добавил столбец в модель, называемую чем-тонапример, file_upload_name, чтобы у меня было не только имя файла «нечто.pdf», но и имя или описание, например «Мой важный документ», в форме загрузки.

Для проектов, которые яЭто жизненно важная часть процесса загрузки, и в идеале это необходимо сделать во время загрузки.Поскольку Active Record не хранится в модели таким образом, это не так просто, как просто добавить столбец и добавить поля в форму.Кажется, что-то должно быть относительно простым, но я не могу понять это или найти какую-либо информацию о том, как лучше всего это сделать.Любая помощь приветствуется.

Вот пример того, чего я пытаюсь достичь:

enter image description here

С Active Storage конечный результаткнопка загрузки нескольких файлов без указания имени и т. д.

1 Ответ

0 голосов
/ 14 декабря 2018

Вы должны создать новую модель, чтобы обернуть каждый прикрепленный файл.В этой модели будет определено вложение ActiveStorage, а также любые другие атрибуты, которые вам понадобятся.Например:

class Attachment < ApplicationRecord
  has_one_attached :file
end

Rails затем обрабатывает file как атрибут для каждого вложения.Вы можете определить другие свои атрибуты (например, имя_загрузки и т. Д.) В модели вложения.Исходя из вашего скриншота, похоже, что цитата имеет много вложенных файлов, поэтому вы должны сделать что-то вроде:

class Quotation < ApplicationRecord
  has_many :attachments
end
...