Вставить видео YouTube в рельсы - PullRequest
1 голос
/ 25 ноября 2011

Я пытаюсь встроить видео в страницы.Я пробовал два разных способа, но не повезло

show.html.erb

<p id="notice"><%= notice %></p>

<p>
  <b>Name:</b>
  <%= @video.name %>
</p>

<p>
  <b>Url:</b>
  <%= @video.url %>
</p>

<p>
    <% #video_tag( @video.url , :size => "560x315", :controls => true, :autobuffer => true ) %>
    <%= youtube_video @video.url%>
</p>

<%= link_to 'Edit', edit_video_path(@video) %> |
<%= link_to 'Back', videos_path %>

Видео не показывает ни ссылки под ним.

Любые советы будутоценили.Спасибо

это результат отладки

ActionView :: MissingTemplate в видео # show

Отображение / Пользователи / atbyrd / Документы / сайты / Город / приложение /views / videos / show.html.erb, где поднята строка # 15:

Отсутствует частичное совместное использование / видео с {: handlers => [: erb,: builder,: coffee],: format => [: html],: locale => [: en,: en]}.Поиск в: * "/ Users / atbyrd / Documents / sites / city / app / views" * "/Users/atbyrd/.rvm/gems/ruby-1.9.2-p290/gems/devise-1.5.1/app/views "

Извлеченный источник (около строки # 15):

12: 13:

14: <% #video_tag (@ video.url,: size =>" 560x315 ",: controls => true,: autobuffer => true)%> 15: <% = youtube_video @ video.url%> 16:

17: 18: <% = link_to 'Edit', edit_video_path (@video)%>|

Rails.root: / Users / atbyrd / Documents / sites / city Трассировка приложений |Framework Trace |Full Trace

app / helpers / application_helper.rb: 4: in youtube_video' app/views/videos/show.html.erb:15:in _app_views_videos_show_html_erb__1532956397246631491_70281299458880 'app / controllers / videos_controller.rb: 18: в `show'

Ответы [ 3 ]

3 голосов
/ 25 ноября 2011

вы забыли закрыть скобку

<%= video_tag( @video.url %>

должно быть

<%= video_tag( @video.url ) %>

ОБНОВЛЕНИЕ:

Попробуйте использовать video_path вместо video_tag.

2-е ОБНОВЛЕНИЕ:

вот как я делаю это сам на своем сайте:

1 - создайте частичную часть с именем _video.html.erb (я на самом деле использую haml, но erb подойдет, если вы предпочитаете ее) и поместите ее в папку, такую ​​как views / shared, или что-то в этом виде, и поместите в нее следующий код:

<iframe width="490" height="275" src="<%= url %>" frameborder="0" allowfullscreen></iframe>

2 добавить следующий метод в application_helper.rb

module ApplicationHelper
  # this method will embed the code from the partial
  def youtube_video(url)
    render :partial => 'shared/video', :locals => { :url => url }
  end 
end

3 - теперь просто назовите это в ваших взглядах с помощью:

<%= youtube_video @video.url %>

Это работает нормально для меня

1 голос
/ 25 ноября 2011

@ miaout17 верно, вы не можете использовать интерполяцию строк в HTML, поэтому вы должны обернуть его в Erb (например, <% =%>).

Кроме того, в ваших ссылках ниже отсутствует окончание ')', поэтому, вероятно, они не работают.

1 голос
/ 25 ноября 2011

Я понял, вы забыли использовать синтаксис erb. Попробуйте:

<iframe width="560" height="315" src= "<%= #{@video.url} %>" frameborder="0" allowfullscreen></iframe>
...