1

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

4

2 回答 2

3

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

安装插件,然后你可以运行一段文本:

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

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

于 2011-10-14T16:57:44.507 回答
-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'' 像您希望的那样复杂(如;传递参数,也许还有一个块)。

于 2011-04-23T05:26:06.673 回答