2011-04-22 69 views
1

我有一些模型,讓它成爲後與字段:內容。任何用戶都可以使用html提交帖子(當然有鏈接:)),我想在這些鏈接上設置nofollow。有沒有任何rails插件可以自動執行此任務?這個插件是否有能力以條件方式管理「nofollowing」 - 例如管理員可以添加鏈接沒有nofollow,但其他 - 只有nofollow?Rails3和自動nofollow鏈接

+0

我認爲你應該創建自己的幫助器方法 – ShiningRay 2011-04-23 04:20:23

回答

-2

可以定義爲這樣的幫手,覆蓋(或相當的包裝),默認的link_to

在app /傭工/ posts_helper.rb做線沿線的東西:

def nf_link_to(link_text, post) 
    opts = {} 
    opts[:rel] = "nofollow" unless post.author == "admin" 
    return link_to text, post, opts 
end 

所以,在你的觀點,你可以這樣做:

<%= nf_link_to post.title, post %> 

這將導致:

<a href="/posts/12" rel="nofollow">My First[tm] Post</a> 

你應該仔細看看link_to的實際執行情況,並使你的''nf_link_to''像(in;按照你的意願傳遞參數或者塊)。

+0

-1:問題是鏈接可能包含在用戶提交的文本塊中,而不是如何生成這樣的鏈接,這是微不足道的。 – mkk 2014-01-07 21:34:14

3

這應該做你要找的內容:https://github.com/rgrove/sanitize/

安裝插件,那麼對於文本塊,你可以運行:

<%=raw Sanitize.clean(@your_html, Sanitize::Config::BASIC) %> 

有,您可以使用自定義其他選項它,但Config :: BASIC版本將檢測該文本塊中的所有鏈接,並向它們添加nofollow標籤。