#ruby-on-rails
#ruby-on-rails
Вопрос:
Я работаю над своим первым «настоящим» проектом Rails — «модернизацией» старого веб-сайта для церковного хора и создаю его на Rails. В настоящее время у них есть страница практики со списком ссылок на файлы mp3, хранящиеся на их сервере. Я хотел бы сохранить файлы mp3 в базе данных и создал модель для песен — название: строка, часть: строка (тенор, сопрано и т.д.), аудио: двоичный файл (это файл mp3). Когда я отправляю форму, звуковое поле равно нулю — остальные поля сохраняются правильно. Должен ли я использовать Gem для загрузки / сохранения файлов mp3? Я сталкивался с CarrierWave, но видел, как он использовался только с изображениями. У меня создалось впечатление, что двоичное поле в active record предназначено для сохранения исходного формата файла. Заранее спасибо!
Комментарии:
1. Есть ли какая-либо причина, по которой вы решили хранить mp3-файлы в базе данных, а не использовать файловую систему?
2. Нет другой причины, кроме того, что я просто новичок. 🙂 Я также рассмотрю возможность использования файловой системы (которая, я полагаю, будет специфичной для любого сайта, который я в конечном итоге выберу для размещения). Спасибо за ответ.
3. Есть плюсы и минусы использования db или файловой системы, но лично я бы позволил базе данных делать то, что она делает хорошо, и управлять данными, а файловой системе — делать то, что она делает хорошо, и управлять файлами. Было бы проще управлять mp3-файлами, если вы используете файловую систему, и в этом случае я бы рекомендовал Paperclip — также убедитесь, что ваша форма использует multipart для загрузки файлов, и если она использует remote (AJAX), рассмотрите возможность использования remotipart gem тоже.
4. Большое вам спасибо! Скрепка сработала как по волшебству.
Ответ №1:
Если вы хотите использовать загрузку файла вместо сохранения его в базу данных, тогда вы можете использовать paperclip
. пожалуйста, взгляните на это https://github.com/thoughtbot/paperclip
Комментарии:
1. Это не отвечает на вопрос — ewkruljac конкретно заявляет, что он хочет сохранить mp3-файлы в базе данных в двоичном виде. Paperclip этого не делает.