如何使用 Oembed 将 youtube thumbnail/title 嵌入到具有 RoR 的索引页面
How to used Oembed to embed a youtube thumbnail/title to Index page with RoR
我对 rails 上的 ruby 还很陌生,我希望得到一些帮助。
我已经能够弄清楚如何将 YouTube 剪辑嵌入到我的节目页面并显示标题
显示视图
#video_show
%h1= @youtube.title.html_safe
%p.username
Shared by
= @video.user.name
about
= time_ago_in_words(@video.created_at)
.clearfix
.video_image_show
= @youtube.html.html_safe
视频控制器
def index
@videos = Video.all.order("created_at DESC").paginate(page: params[:page], per_page: 20)
@video.link = Video.find(params[:id])
@youtube = OEmbed::Providers::Youtube.get(@video.link)
end
def show
@infos = Info.where(video_id: @video)
@comments = Comment.where(video_id: @video)
@random_video = Video.where.not(id: @Video).order("RANDOM()").first
@youtube = OEmbed::Providers::Youtube.get(@video.link)
end
但是在我的索引页中显示缩略图和标题时,它告诉我我有一个未定义的方法,例如 'title'。
索引视图
- @videos.each do |video|
.Video
.Video_image
= image_tag @youtube.thumbnail_url.html_safe, video
.Video_content
.title
%h2= @youtube.title.html_safe, video
.data.clearfix
%p.username
Shared by
= video.user.name
我是否可以 link 索引页面的视频 ID,这将允许 Oembed 显示 @youtube = OEmbed::Providers::Youtube.get(@video.link) 缩略图和标题?
非常感谢
您不能在控制器的索引方法中设置 @youtube
,因为此时您有一系列视频。您需要的是:
在你的控制器中
def index
@videos = Video.all.order("created_at DESC").paginate(page: params[:page], per_page: 20)
end
并在您的 HAML 视图中
- @videos.each do |video|
- youtube = OEmbed::Providers::Youtube.get(video.link)
.Video
.Video_image
= image_tag youtube.thumbnail_url.html_safe, video
.Video_content
.title
%h2= youtube.title.html_safe, video
.data.clearfix
%p.username
Shared by
= video.user.name
我对 rails 上的 ruby 还很陌生,我希望得到一些帮助。 我已经能够弄清楚如何将 YouTube 剪辑嵌入到我的节目页面并显示标题
显示视图
#video_show
%h1= @youtube.title.html_safe
%p.username
Shared by
= @video.user.name
about
= time_ago_in_words(@video.created_at)
.clearfix
.video_image_show
= @youtube.html.html_safe
视频控制器
def index
@videos = Video.all.order("created_at DESC").paginate(page: params[:page], per_page: 20)
@video.link = Video.find(params[:id])
@youtube = OEmbed::Providers::Youtube.get(@video.link)
end
def show
@infos = Info.where(video_id: @video)
@comments = Comment.where(video_id: @video)
@random_video = Video.where.not(id: @Video).order("RANDOM()").first
@youtube = OEmbed::Providers::Youtube.get(@video.link)
end
但是在我的索引页中显示缩略图和标题时,它告诉我我有一个未定义的方法,例如 'title'。
索引视图
- @videos.each do |video|
.Video
.Video_image
= image_tag @youtube.thumbnail_url.html_safe, video
.Video_content
.title
%h2= @youtube.title.html_safe, video
.data.clearfix
%p.username
Shared by
= video.user.name
我是否可以 link 索引页面的视频 ID,这将允许 Oembed 显示 @youtube = OEmbed::Providers::Youtube.get(@video.link) 缩略图和标题?
非常感谢
您不能在控制器的索引方法中设置 @youtube
,因为此时您有一系列视频。您需要的是:
在你的控制器中
def index
@videos = Video.all.order("created_at DESC").paginate(page: params[:page], per_page: 20)
end
并在您的 HAML 视图中
- @videos.each do |video|
- youtube = OEmbed::Providers::Youtube.get(video.link)
.Video
.Video_image
= image_tag youtube.thumbnail_url.html_safe, video
.Video_content
.title
%h2= youtube.title.html_safe, video
.data.clearfix
%p.username
Shared by
= video.user.name