Estoy trabajando con Ruby on Rails, ¿hay alguna manera de quitar html
una cadena usando el método desinfectar o igual y mantener solo el texto dentro del atributo de valor en la etiqueta de entrada?
html
ruby
string
ruby-on-rails-3
Mattias
fuente
fuente
text.strip
funcionaRespuestas:
Hay un
strip_tags
método enActionView::Helpers::SanitizeHelper
:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Editar: para obtener el texto dentro del atributo de valor, puede usar algo como Nokogiri con una expresión Xpath para sacarlo de la cadena.
fuente
Si queremos usar esto en el modelo
cuál es el código del método "strip_tags"
fuente
require 'html/sanitizer'
crear una instancia de su propio desinfectanteHTML::FullSanitizer.new
.require 'html/sanitizer'
genera un error, así que tengo que usar:Rails::Html::FullSanitizer.new
( edgeapi.rubyonrails.org/classes/HTML/… )Sí, llame a esto:
sanitize(html_string, tags:[])
fuente
La lista blanca de etiquetas y atributos se puede especificar a continuación
La declaración anterior permite las etiquetas img , br y py los atributos src y style .
fuente
He usado la biblioteca Loofah, ya que es adecuada tanto para HTML como para XML (tanto documentos como fragmentos de cadenas). Es el motor detrás de la gema desinfectante html. Simplemente pego el ejemplo de código para mostrar lo simple que es de usar.
Gema de lufa
fuente
¿Qué tal esto?
fuente
Rails::Html::FullSanitizer.new
si no desea especificar una lista blanca.