2009-08-08 15 views
5

Estoy construyendo una aplicación de chat simple con Rails. cuando un usuario escribe una url, quiero que se muestre como un enlace html (es decir, "url").URL de Ruby a la conversión de enlace html

Me preguntaba si hay alguna biblioteca o una forma conocida de hacerlo en Ruby. Si no, tengo un código de muestra de expresiones regulares decente para trabajar con ...

Respuesta

9

Consulte el método de ayuda auto_link provisto por Rails. Esto convierte todas las URL y direcciones de correo electrónico en enlaces clicables (etiquetas de anclaje html). Aquí hay una muestra de código de los documentos.

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

impresionante, gracias! así que podría recorrer cada palabra en el mensaje, si pasa la prueba de URL regex, renderícela como un enlace. Creo que tendré que descubrir cómo hacerlo en el controlador y no en una vista. gracias de nuevo. – user94154

+1

No es necesario pasar por cada palabra, si pasa toda la cadena a auto_link, solo debería vincular las direcciones URL y los correos electrónicos. Además, si necesita llamar a este método fuera de la vista, consulte este episodio: http://railscasts.com/episodes/132-helpers-outside-views – ryanb

+1

Este método se ha eliminado de los carriles 3.1 pero está disponible como un joya independiente 'rails_autolink' también podría ver la joya 'rinku' que ofrece beneficios de rendimiento sobre la implementación de rieles. – jwarzech

Cuestiones relacionadas