2015-09-02 9 views
0

Я довольно новичок в рубинах на рельсах, и я надеялся получить некоторую помощь. Я был в состоянии понять, как вставлять клип в юность моей шоу-страницы и иметь заголовком показываетКак использовать Oembed для встраивания миниатюры/заголовка youtube на страницу индекса с RoR

Show View

#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 

Но тогда это появляется, чтобы показать Thumbnail и заголовок на моей индексной странице, он говорит мне, что у меня есть неопределенный метод, такой как «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 

Есть в любом случае, что я могу связать идентификатор видео на индексную страницу, которая позволит Oembed показать @YouTube = OEmbed :: Поставщики :: Youtube.get (@video .link) thumbnail и название?

большого спасибо заранее

ответ

0

Вы не можете установить в индексном методе контроллера @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 
+0

Спасибо большое, это давало мне покоя навсегда, и теперь он работает: D не могу поблагодарить вас и спасибо за ответ :) – DrestZ