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

StackOverflow https://stackoverflow.com/questions/4561923

Вопрос

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

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

У меня есть вопросы.

  1. Должен ли я использовать плагин / драгоценный камень, я не нашел простой реализации.

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

  3. Можно ли сделать это с jQuery, не обновляя страницу?

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

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

PS: я использую Rails 2.3.5

Это было полезно?

Решение

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

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

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

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

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

С уважением,

Алекс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top