Rails3 и автоматические ссылки nofollow - PullRequest
1 голос
/ 23 апреля 2011

У меня есть какая-то модель, пусть это будет Post with field: content. Любой пользователь может отправить сообщение с HTML (со ссылками, конечно, :)), и я хотел бы установить nofollow на эти ссылки. Есть ли плагин rails для автоматизации этой задачи? Есть ли у этого плагина возможность управлять "nofollowing" условным способом - например, админ может добавлять ссылки без nofollow, а другие - только с nofollow?

Ответы [ 2 ]

3 голосов
/ 14 октября 2011

Это должно сделать то, что вы ищете: https://github.com/rgrove/sanitize/

Установите плагин, затем для блока текста вы можете запустить:

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

Существуют и другие параметры, которые можно использовать для его настройки, но версия Config :: BASIC обнаружит все ссылки в этом блоке текста и добавит к ним тег nofollow.

0 голосов
/ 23 апреля 2011

Вы можете определить помощника для этого, переопределив (или вернее обернув) стандартную ссылку__

В 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«», настолько сложный, насколько вы хотите (передавая аргументы и, возможно, блок).

...