2011-04-22 65 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标签。