我试图找出一种从我视图中的内容中提取URI / URL的方法;在Rails中。
到目前为止,一切似乎都在起作用,但是我还在思考,因为源代码不是一个干净的URI,而是一个有额外内容的URI。到目前为止,在我看来,我有以下几点;
<div id="social" class="facebook" data-url="<%= URI.extract(saved.content) %>">
现在生活在上面,但就像我说的一个小故障,因为Facebook有时会拿起网址,有时它不会。有了上述那条线;我得到以下源代码结果;
<div id="social" class="facebook" data-url="["dealbook:", "http://t.co/mUQOmLlLXG"]">
saved.content
有一条消息,有时会有一个网址;
有什么方法可以清理它吗?所以它变得更容易。如果URI / URL刚刚打印到data-url=""
而不是引号,括号等,那就太棒了。
答案 0 :(得分:1)
你可能想要这样的东西:
data-url="<%= URI.extract(saved.content).detect {|u| u.start_with? "http" } %>"
原因是URI#extract
返回一系列匹配项;您可以使用Enumerable#detect
查找与该块匹配的第一个,在这种情况下,该URL是以&#34; http&#34;开头的条件。
答案 1 :(得分:0)
# in saved model
def content_url
s = self.content.gsub(/&[0-9a-z]+;/i, ' ') # replace &xxx;(html symbol) with ' ' string
URI.extract(s, ['http', 'https']).first
end
#in view
<div id="social" class="facebook" data-url="<%= saved.content_url%>">
在已保存的模型中,定义方法#content_url以提取网址。