所以我创建了一个网站,人们可以在该网站上发布链接。根据链接的内容,帖子的呈现方式会有所不同。例如,带有指向 youtube.com/somevideo 链接的帖子将呈现嵌入视频。以 JPG 结尾的链接将显示该图像。
在我看来,我写了以下内容
<% link_type = extract_content_from_url(post.link) %>
<div class ="preview_of_post">
<% if post.link %>
<% if link_type == "youtube" %>
<%= youtube_embed(post.link) %>
<% end %>
<br />
<%= link_to (post.link), (post.link) %>
<% end %>
在我的助手中,我有这个:
module PostsHelper
def extract_content_from_url(url)
if url != ""
unless url.include?("http://")
post.link = "http://#{post.link.downcase}"
end
else
return "nil"
end
if url.include? == "youtube.com/watch" #youtube link
return "youtube"
end
if File.extname(url) == ".gif" || File.extname(url) == ".jpg" ||
File.extname(url) == ".png" || File.extname(url) == ".jpeg"
return"picture"
end
end
def youtube_embed(youtube_url)
if youtube_url[/youtu\.be\/([^\?]*)/]
youtube_id = $1
else
youtube_url[/^.*((v\/)|(embed\/)|(watch\?))\??v?=?([^\&\?]*).*/]
youtube_id = $5
end
render(:inline=> "<iframe title='YouTube video player' width='640' height='390' src='http://www.youtube.com/embed/#{ youtube_id }' frameborder='0' allowfullscreen></iframe>")
end
end
运行我的代码时,出现以下错误:
有什么建议么?谢谢。