2012-04-15 12 views
6

Jak utworzyć automatyczne hiperłącza dla adresów URL w tekście/łańcuchu renderowanym w widoku? Mam stronę, która renderuje dziennik aktywności użytkownika iw tym logu/tekście/ciągu znajduje się kilka losowych adresów URL, które chcę automatycznie hiperlinkować, aby otworzyć w nowym oknie przeglądarki. Jest to auto_link w rubinowych szynach, jak tego użyć?Ruby - szyny - jak tworzyć automatyczne hiperłącza dla adresów URL w tekście/łańcuchu renderowanym w widoku?

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

<%= "#{Text}" %> 

Chcę to renderować za pomocą hiperłącza do adresu URL. Adres URL może znajdować się w dowolnym miejscu w tekście.

Odpowiedz

13

Zastosowanie auto_link tak:

<%= auto_link(text) %> 

Jeśli chcesz wygenerowane linki do otwierania nowych okien przeglądarki (lub kart) dodać opcję tak:

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

Jak wspomniano przez pjumble w komentarze, auto_link nie jest już częścią rdzenia Rails z Rails 3.1, ten klejnot go przywraca: https://github.com/tenderlove/rails_autolink Dzięki pjumble!

+0

Próbowano, że '<% = auto_link (" # {text} ")%>'. Mam ten błąd - 'niezdefiniowana metoda 'auto_link' dla # <# : 0xb116524>' –

+0

Gdzie używasz tego kodu? – ctcherry

+0

w widoku - '<% @a [: log] .to_s.split (/ --- /). Reverse.each do | line | %>

<%= auto_link(line) %>
<% end %> ' –

Powiązane problemy