我有一些模特,让它成为Post with field:content。任何用户都可以使用html提交帖子(当然有链接:))我想在这些链接上设置nofollow。是否有任何rails插件可以自动执行此任务?这个插件是否有能力以条件方式管理“nofollowing” - 例如admin可以添加没有nofollow的链接,但是其他 - 只有nofollow?
答案 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''像你想要的那样复杂(如:传递参数,也许是一个块)。