2014-10-03 126 views
1

我想将文字中的链接自动变成<a>,所以我转向autolink宝石。 但是,我不仅希望它变成HTML <a>,还要缩短显示的href。Rails:使用省略号自动链接?

例如

Text: 
Go to http://stackoverflow.com/questions/8699459/get-title-content-via-link-in-rails 

Returned result 
Go to <a href=\"http://stackoverflow.com/questions/8699459/get-title-content-via-link-in-rails">stackoverflow.com/questions/8699....</a> 

这是http被剥离,并在<a>文本的length被stricted。

我该怎么做?我想也许我必须重新发明轮子,例如: 首先找到链接,然后去掉http并给它一个最大长度。然后生成<a>以替换文本中的原始文本类链接。

或者我可以放弃剥离http://,并改用CSS的text-overflow

回答

1

如果使用rails_autolink宝石,可以通到auto_link块,这将让你截断链接的文本:

post_body = "Welcome to my new blog at http://www.myblog.com/." 

auto_link(post_body, :html => { :target => '_blank' }) do |text| 
    truncate(text, :length => 15) 
end 

# => "Welcome to my new blog at <a href=\"http://www.myblog.com/\" target=\"_blank\">http://www.m...</a>." 
+0

哇!这看起来很神奇。我想我也可以同时去除'http'前缀?但是我如何封装这个方法,所以我可以在我看来使用它? – cqcn1991 2014-10-04 01:22:15