检测链接是否在内部并相应地缩短链接

时间:2011-05-29 08:06:35

标签: ruby-on-rails ruby regex string gsub

我一直在考虑制作一个缩短内部链接的辅助方法。例如: 如果我的网站是example.com并且用户发布了指向http://www.example.com/posts/80的链接,那么将链接文本缩短为发布#80和http://www.example.com/comments/5以发表评论#5将会很不错。

这就足够了

url["http://www.example.com/posts/"] = "post#"

或者我应该使用正则表达式吗?

1 个答案:

答案 0 :(得分:1)

的regexp!

SITE_URL = 'http://www.example.com'    # make sure there is no trailing slash /

url = "http://www.example.com/posts/80"

short_url = url.sub( %r{^#{SITE_URL}(.*)$} , '\1')
  => "/posts/80"