Рельсы ActiveStorage: ограничить количество загружаемых файлов - PullRequest
1 голос
/ 02 мая 2019

Я хочу ограничить выбор пользователем до 2 файлов (во входном теге?).

 <%= f.file_field :images, multiple: true %>

Я бы хотел ограничить выбор пользователем до 2 файлов (фронт и бэк-офис).

Есть ли способ (желательно с жестким кодом) ограничить количество файлов, которые пользователь может выбрать?

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Короткий ответ - нет.За кулисами Rails просто генерирует разметку.Согласно исходному коду на https://github.com/rails/rails/blob/1ce5153a099e82f761315154dfe5e01253dafd81/actionview/lib/action_view/helpers/form_helper.rb#L1202

#   file_field(:post, :image, multiple: true)
#   # => <input type="file" id="post_image" name="post[image][]" multiple="multiple" />

Rails просто устанавливает атрибут multiple на "multiple".Возможно, вы сможете достичь того, что вам нужно, с помощью JavaScript.Вы также можете просто вывести два ввода для загрузки файлов без атрибута множественного числа ...

0 голосов
/ 02 мая 2019

Вы не можете указать ограничение.Javascript может определять количество файлов или ваш Ruby-сервер может определять количество файлов, но вам нужно выполнить проверку вне HTML.

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

...