2009-08-08 12 views
5

Sto costruendo una semplice app di chat con Rails. quando un utente digita un URL, voglio che venga emesso come link html (es. "url").Ruby url to html link conversion

Mi chiedevo se c'è una libreria o un modo ben noto per farlo in Ruby. In caso contrario, ho un codice di esempio regolare corretto con ...

risposta

9

Controlla il metodo di supporto auto_link fornito da Rails. Questo trasforma tutti gli URL e gli indirizzi email in link cliccabili (tag di ancoraggio html). Ecco un esempio di codice dai documenti.

auto_link("Go to http://www.rubyonrails.org and say hello to [email protected]") 
# => "Go to <a href=\"http://www.rubyonrails.org\">http://www.rubyonrails.org</a> and 
#  say hello to <a href=\"mailto:[email protected]\">[email protected]</a>" 
+0

fantastico, grazie! in modo da poter scorrere ogni parola del messaggio, se passa il test di urge regex, renderlo come un collegamento. Immagino che dovrò capire come farlo nel controller e non in una vista. grazie ancora. – user94154

+1

Non è necessario eseguire il ciclo di ogni parola. Se si passa l'intera stringa a auto_link, è sufficiente collegare gli URL e le e-mail. Inoltre, se hai bisogno di chiamare questo metodo al di fuori della vista, guarda questo episodio: http://railscasts.com/episodes/132-helpers-outside-view – ryanb

+1

Questo metodo è stato rimosso dai binari 3.1 ma è disponibile come gemma indipendente 'rails_autolink' puoi anche guardare la gemma 'rinku' che offre vantaggi prestazionali rispetto all'implementazione delle rotaie. – jwarzech