将YouTube视频嵌入导轨中

时间:2011-11-25 16:46:02

标签: ruby-on-rails macos video youtube embed

我正在尝试在页面中嵌入视频。我尝试了两种不同的方式,但没有运气

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

     

显示   /Users/atbyrd/Documents/sites/city/app/views/videos/show.html.erb   第15行引出的地方:

     

缺少部分共享/视频{:handlers =&gt; [:erb,:builder,   :coffee],:formats =&gt; [:html],:locale =&gt; [: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:&lt;%#video_tag(@ video.url,:size =&gt;“560x315”,   :controls =&gt; true,:autobuffer =&gt; true)%&gt; 15:&lt;%= youtube_video   @ video.url%GT; 16:

17:18:&lt;%= link_to'编辑',   edit_video_path(@video)%&gt; |

     

Rails.root:/ Users / atbyrd / Documents / sites / city应用程序跟踪|   框架跟踪|完整跟踪

     

app / helpers / application_helper.rb:4: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 个答案:

答案 0 :(得分:3)

您忘记关闭括号

<%= video_tag( @video.url %>

应该是

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

更新:

尝试使用video_path代替video_tag。

第二次更新:

这是我在自己的网站上自己做的事情:

1 - 创建一个名为_video.html.erb的部分(我实际上使用haml,但是如果您愿意的话,erb会这样做)并将其放在像views / shared这样的文件夹中或广告中放入以下代码:< / p>

<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 :(得分:1)

我明白了,你忘了使用erb语法。尝试:

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

答案 2 :(得分:1)

@ miaout17是对的,您不能在HTML中使用字符串插值,因此您必须将其包装在Erb中(例如&lt;%=%&gt;)。

此外,您在下面的链接中错过了一个结尾')',这可能就是他们无法正常工作的原因。