2010-09-24 2 views

ответ

4

Я бы порекомендовал вам использовать paperclip или carrierwave оба действительно хорошие библиотеки и работают из коробки в большинстве случаев.

0

вы также можете посмотреть attachment_fu рельсы.

+1

Я лично не рекомендовал бы attach_fu, поскольку он, кажется, оставлен без изменений, и он был таким более года. –

0

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

Они обеспечивают хорошее решение для общей задачи с поддержкой различных вариантов хранения. Обе поддерживают файловую систему и S3. Carrierwave также поддерживает файлы облачных хранилищ Rackspace и GridFS от MongoDB.

Я бы порекомендовал несущую волну из-за одного аспекта, где они отличаются от использования. Он использует отдельный класс загрузки, который вы монтируете на своей модели. Это отделяет ваш код от загрузки файла из кода модели. Я нахожу этот подход более чистым и легче тестировать.

+0

WRT сохраняет информацию в atts объекта, вы можете сделать это в Paperclip, определив отдельную модель для загруженного объекта, например. Создайте объект профиля, который has_one Image, используя класс изображения для хранения настроек загрузки. – Codebeef

+0

Теперь я понимаю, что я подумал и написал другое. То, что я хотел выразить, было то, что я чувствую, что наличие кода в отдельном классе загрузки и только один атрибут, добавленный в модель, является более чистой реализацией, чем наличие четырех атрибутов и кода последующей обработки в модели. Вам все равно придется обертывать оба решения в отдельной модели, если вы хотите включить их в отношения от одного или нескольких ко многим. –

+0

Ответ теперь редактируется в соответствии с комментариями. –

Смежные вопросы