Rails: загрузка нескольких файлов в виде вложенной модели

Я работаю над проектом, где необходимо загрузить несколько файлов разного типа.

Я хочу хранить файлы в базе данных (я не уверен, что это также лучшая идея) как вложенную модель. Можно назвать документом.

У меня есть следующие вопросы.

  1. Нужно ли использовать плагин / гем, я не нашел простой реализации этого.

  2. Если да, что будет лучшим гемом / плагином для этого? Насколько я мог понять, paperclip не поддерживает хранение в базе данных, но attachment_fu поддерживает.

  3. Можно ли сделать это с помощью jQuery без обновления страницы?

Я также хотел бы обработать некоторые ошибки, касающиеся размера файлов и типов.

С уважением, Хардик

PS: я использую рельсы 2.3.5

1 ответ

Решение

Прежде всего, никогда не храните файлы в базе данных!

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

  1. Конечно, вам не нужно использовать плагин / драгоценный камень. Вы всегда можете реализовать все самостоятельно, но это, конечно, плохая идея, потому что другие уже изобрели это колесо, которое экономит вам много времени.

  2. Скрепка по-прежнему мой выбор, довольно хороший, и, на мой взгляд, легче справиться, чем attachment_fu. Он также имеет запрошенные проверки.

  3. Конечно, есть http://www.uploadify.com/ например, позволяет несколько загрузок файлов и вещей, которые вы можете себе представить:)

С Уважением,

Alex

Другие вопросы по тегам