RAILS - как разрешить пользователю добавлять музыку / создавать списки воспроизведения на своей личной странице? - PullRequest
0 голосов
/ 10 ноября 2018

Для школьного проекта ruby ​​on rails (нет намерения использовать его публично) я хочу разрешить пользователям загружать музыкальный плейлист на свою страницу, используя что-то вроде spotify / soundcloud. Есть идеи о том, как это реализовать?

Главным образом, как дать пользователю возможность выбирать, что добавить на свою страницу (например, как пользователь Instagram загружает изображение, здесь пользователь может загружать свои собственные песни / внешние плейлисты)

(история пользователя не важна)

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Если вы хотите дать пользователю возможность загружать фактический mp3-файл (или аналогичный), вам следует посмотреть ActiveStorage / Скрепка / Carrierwave / Shrine . ActiveStorage тесно связан с Rails, поэтому, возможно, проще всего начать с него.

Если вы используете ActiveStorage, вам не нужно будет писать ассоциации или поля файла; это сделает это для вас. Вам просто нужно будет ввести has_many_attached, и, учитывая, что ваше файловое поле называется Song, оно будет выглядеть примерно так:

class User < ApplicationRecord
  has_many_attached :songs
end 

Чтобы начать локально, вы можете настроить приложение Rails так, чтобы оно просто использовало ваше локальное хранилище; вам не нужно запутываться с любым удаленным хранилищем, пока вам это не понадобится (например, производство).

В профиле пользователя (если он есть) вы можете просто сослаться на songs, например:

@user.songs.each do ... end

Rails поначалу очень пугает. Это самоуверенное и подавляющее. Если вам нужно больше указаний, моя электронная почта в моем профиле :) Я дружелюбен к n00b.

0 голосов
/ 10 ноября 2018

две разные вещи здесь:

так что для Spotify вам нужно будет пройти через систему, такую ​​как TuneCore или другое средство, чтобы получить туда исходные файлы.Я думаю, что Soundcloud, вероятно, приведет вас туда, но вы могли бы просто загрузить людей на ваш сайт с помощью Carrierwave.Для обработки аудио вам нужно будет поработать на сервере, чтобы убедиться, что у вас есть пакеты (LAME требуется для кодирования MP3. Я знаю, глупое имя).

https://github.com/carrierwaveuploader/carrierwave https://github.com/TrevorHinesley/carrierwave-audio

Это также позволит пользователям загружать свои собственные изображения профиля или другие изображения и т. Д.

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

...