使用Panda(pandastream)视频显示Index Action中的所有视频

时间:2014-02-12 17:37:55

标签: ruby-on-rails video heroku ruby-on-rails-4 pandastream

我正在使用PandaVideo(http://www.pandastream.com/docs/integrate_with_rails)在我的Rails应用中上传视频。我无法从Panda和Heroku的文档中获取代码,将其与索引操作相关联,以显示所有视频,包括视频的控制器索引操作和用户的配置文件,以显示每个用户的视频。

以下是他们在视频的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 个答案:

答案 0 :(得分: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 %>

您只是引用Panda的API来检索与上传相关的信息,但是您可以处理所有关系以及用户和视频模型。

如果我错过了某些内容,请告诉我,因为您似乎正走在正确的轨道上。