Rails3和自动nofollow链接

时间:2011-04-22 23:22:16

标签: ruby ruby-on-rails-3 seo hyperlink nofollow

我有一些模特,让它成为Post with field:content。任何用户都可以使用html提交帖子(当然有链接:))我想在这些链接上设置nofollow。是否有任何rails插件可以自动执行此任务?这个插件是否有能力以条件方式管理“nofollowing” - 例如admin可以添加没有nofollow的链接,但是其他 - 只有nofollow?

2 个答案:

答案 0 :(得分:3)

这应该可以满足您的需求:https://github.com/rgrove/sanitize/

安装插件,然后对于您可以运行的文本块:

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

您可以使用其他选项来自定义它,但Config :: BASIC版本将检测该文本块中的所有链接并向其添加nofollow标记。

答案 1 :(得分:-2)

您可以为此定义一个帮助程序,覆盖(或者包装)默认的link_to

在app / helpers / 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''像你想要的那样复杂(如:传递参数,也许是一个块)。