ssc*_*rus 32 youtube ruby-on-rails ruby-on-rails-3
我的目标:我试图允许用户在我的网站中嵌入Youtube视频的链接,同时让我控制播放器的设置.
我想通过只要求用户提供链接(而不是整个嵌入代码)来实现这一点,从那里我可以以某种方式将该链接粘贴到嵌入代码中.
我尝试用一些Youtube链接(http://youtu.be/...
)做一个简单的替换,但它们不起作用,说"电影未加载".有可靠的方法吗?
Dou*_*rer 68
我经常为客户做这件事,其中的要点是你从URL解析出ID,然后iframe
使用它生成HTML.
def youtube_embed(youtube_url)
if youtube_url[/youtu\.be\/([^\?]*)/]
youtube_id = $1
else
# Regex from # http://stackoverflow.com/questions/3452546/javascript-regex-how-to-get-youtube-video-id-from-url/4811367#4811367
youtube_url[/^.*((v\/)|(embed\/)|(watch\?))\??v?=?([^\&\?]*).*/]
youtube_id = $5
end
%Q{<iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/#{ youtube_id }" frameborder="0" allowfullscreen></iframe>}
end
youtube_embed('youtu.be/jJrzIdDUfT4')
# => <iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/jJrzIdDUfT4" frameborder="0" allowfullscreen></iframe>
Run Code Online (Sandbox Code Playgroud)
我把它放在帮助器里.改变高度,宽度和选择的味道.
另一个答案是使用这个处理youtube和vimeo的gem,可以扩展到更多.它还可以与AR集成,因此您可以缓存生成的html,而不是在每个渲染上进行过滤:
https://github.com/dejan/auto_html
小智 7
我使用youtube_embed函数获得了最高评价的答案但是当我在我的视图中实现时,我看到iframe代码出现在我的页面中,但没有视频.我在函数调用之前添加了raw,现在页面都很好.
在我的view.html.erb中
<p><%= raw(youtube_embed(@experiment.researchsection.videolink)) %></p>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18507 次 |
最近记录: |