什么是自动链接的好方法"像@在他们面前的话像twitter一样吗? 例如auto_link_user(' Hello @matt请发送文件到harry@gmail.com')会返回 '您好@matt请将文件发送至harry@gmail.com'
我试图在Ruby http://www.ideone.com/aGklx
中做到这一点答案 0 :(得分:1)
str = "@foo, I'm @bar. My email is bar@bar.com"
r = /(^|\s)@([a-z0-9_]+)/i
str.gsub(r){|x| "#{$1}<a href=\"http://wwww.twitter.com/#{$2}\">@#{$2}<a/>"}
#=> "<a href=\"http://wwww.twitter.com/foo\">@foo<a/>, I'm <a href=\"http://wwww.twitter.com/bar\">@bar<a/>. My email is bar@bar.com"
答案 1 :(得分:0)
如果您正在寻找直接链接到Twitter(从您的问题中不清楚这是您正在尝试做什么),那么您应该查看他们的@anywhere API。
编辑:您可以在客户端使用Javascript执行您想要执行的操作,而不是在ruby中执行此操作:
<script type="text/javascript">
twttr.anywhere(function (T) {
T("#linkify-this-content").linkifyUsers();
});
</script>
看起来并不是你想要的,但这是一个选择。
答案 2 :(得分:0)
使用基本网址概括方式,
def append_urls str, base_url
str.gsub!(/(^|\s|\b)@([a-z0-9_]+)/i) do |word|
word = $2
"<a href='#{base_url}#{word}'>#{word}</a>"
end
end
将此方法添加到helper之一并在视图中调用为
<%= append_urls(str_to_append_url,"www.twitter.com/") %>