Ruby-rails-как создать автоматические гиперссылки для URL-адресов в тексте / строке, отображаемой в представлении?

Как создать автоматические гиперссылки для URL-адресов в тексте / строке, отображаемой в представлении? У меня есть страница, которая отображает журнал активности пользователя, и в этом журнале/тексте/строке есть некоторые случайные URL-адреса, которые я хочу автоматически гиперссылку открыть в новом окне браузера. Есть это auto_link в ruby rails, как это использовать?

text = "User xyz accessed url - http://www.something.com on 04/13/2012 00:13:18GMT"

<%= "#{Text}" %>

Я хочу, чтобы это отображалось с гиперссылкой на url. URL-адрес может быть любым в любом месте текста.

2 ответов


используйте auto_link следующим образом:

<%= auto_link(text) %>

Если вы хотите, чтобы сгенерированные ссылки открывали новые окна браузера (или вкладки), добавьте такую опцию:

<%= auto_link(text, :html => { :target => '_blank' }) %>

как упоминалось pjumble в комментариях,auto_link больше не является частью Rails core с Rails 3.1, этот драгоценный камень возвращает его:https://github.com/tenderlove/rails_autolink Спасибо pjumble!


для более быстрого разбора, попробовать https://github.com/vmg/rinku

require 'rinku'
Rinku.auto_link(text, mode=:all, link_attr=nil, skip_tags=nil)

также часто требуется больше фильтров, чем просто ссылки, например, встроенные видео Youtube. Для этого используйте:https://github.com/dejan/auto_html