有没有人能解释一下露比在这里做什么?
我想要理解代码,这样我就可以在将来适应它。我想做的一件事是让它适应Vimeo,但我需要了解发生了什么,这样我才能学到更多。
module ApplicationHelper
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" src="https://www.youtube.com/embed/#{ youtube_id }?rel=0&enablejsapi=1" frameborder="0" allowfullscreen></iframe>}
end
end发布于 2016-09-03 05:41:20
这段代码试图从视频上的任何youtube链接为embet youtube播放器构建代码。此if youtube_url[/youtu\.be\/([^\?]*)/]验证给定的url是否具有"youtu.be/....“格式化,然后提取视频id。($1包含正则表达式的求值结果(/.../之间的表达式))
如果字符串不是以'youtu.be‘开头,代码使用一些棘手的正则表达式(如果代码中的stackoverflow的跟随链接可以解释ypu可以找到的),然后从$5也可以得到视频id。
然后它返回一个字符串,该字符串是该视频的嵌入式youtube播放器的html代码。它使用#{youtube_id}将视频id插入到此字符串的末尾
https://stackoverflow.com/questions/39299304
复制相似问题