0

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

这是他们提供的用于在视频的 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 的所有特定用户的视频。

4

1 回答 1

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 来检索与上传相关的信息,但是您处理所有关系以及用户和视频模型。

如果我遗漏了什么,请告诉我,因为您似乎在正确的轨道上。

于 2014-02-17T15:47:07.693 回答