2014-10-03 88 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