Использование Panda (pandastream) Video для показа всех видео в Index Action

Я использую PandaVideo ( http://www.pandastream.com/docs/integrate_with_rails) для загрузки видео в моем приложении Rails. У меня возникают проблемы с получением кода из документов в Panda и Heroku, чтобы связать его с действием индекса, чтобы показать ВСЕ видео, как с помощью действия индекса контроллера Видео, так и в профиле пользователя, чтобы показать видео каждого пользователя.

Вот код, который они дают, чтобы найти и показать видео об акции Video SHOW:

@video = Video.find(params[:id])
@original_video = @video.panda_video
@h264_encoding = @original_video.encodings["h264"]

затем в представлении просмотра я ссылаюсь на видео на основе последней переменной @h264_encoding

Это хорошо работает. Теперь мне нужно как-то взять этот код и использовать его, чтобы показать все видео на одной странице. Для этого примера давайте покажем все видео конкретного пользователя на его странице.

def show
  @user = User.find_by(username: params[:username])
  # not sure what goes here to find that user's videos (from Panda).
  # If i were just using paperclip for instance, I could easily write:
    @videos = @user.videos # but I need to use the Panda (the @h264_encoding variable) to find the video.
end

может быть это полезно... вот часть модели видео

def panda_video
  @panda_video ||= Panda::Video.find(panda_video_id)
end

Я надеюсь, что предоставил достаточно кода. Если нет, пожалуйста, дайте мне знать, и я добавлю больше. Опять же, я пытаюсь показать все видео конкретного пользователя из PandaStream.

1 ответ

Решение

Не уверен, что я что-то упустил, но почему бы не быть так просто:

def index
  @videos ||= Video.all
end

Что касается вашего шоу, я не вижу ничего плохого в этом:

def show
  @user = User.find_by(username: params[:username])
  @videos = @user.videos
end

Тогда, на ваш взгляд, что-то вроде следующего:

<%= @videos.each do |video| %>
  <% h264_encoding = video.panda_video.encodings["h264"] %>
  <video id="movie" width="<%= h264_encoding.width %>" height="<%= h264_encoding.height %>" preload="none" 
    poster="<%= h264_encoding.screenshots.first %>" controls>
    <source src="<%= h264_encoding.url %>" type="video/mp4">
  </video>
<% end %>

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

Дайте мне знать, если я что-то упустил, так как кажется, что вы на правильном пути.

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