Ssortingp html de ssortingng Ruby on Rails

Je travaille avec Ruby on Rails. Existe-t-il un moyen de supprimer html d’une chaîne en utilisant la méthode sanitize ou equal et de ne garder que le texte à l’intérieur de l’atsortingbut value sur la balise d’entrée?

Il y a une méthode ssortingp_tags dans ActionView::Helpers::SanitizeHelper :

http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-ssortingp_tags

Edit: pour obtenir le texte à l’intérieur de l’atsortingbut value, vous pouvez utiliser quelque chose comme Nokogiri avec une expression Xpath pour le retirer de la chaîne.

Si nous voulons l’utiliser dans le modèle

 ActionView::Base.full_sanitizer.sanitize(html_ssortingng) 

qui est le code dans la méthode “ssortingp_tags”

Oui, appelez ceci: sanitize(html_ssortingng, tags:[])

 ActionView::Base.full_sanitizer.sanitize(html_ssortingng) 

La liste blanche des balises et des atsortingbuts peut être spécifiée comme ci-dessous

 ActionView::Base.full_sanitizer.sanitize(html_ssortingng, :tags => %w(img br p), :atsortingbutes => %w(src style)) 

L’instruction ci-dessus autorise les balises: img, br et p et atsortingbuts: src et style.

J’ai utilisé la bibliothèque Loofah, car elle convient à la fois à HTML et à XML (documents et fragments de chaînes). C’est le moteur du désinfectant html. Je colle simplement l’exemple de code pour montrer à quel point c’est simple à utiliser.

Loofah Gem

 unsafe_html = "ohai! 
div is safe
" doc = Loofah.fragment(unsafe_html).scrub!(:ssortingp) doc.to_s # => "ohai!
div is safe
" doc.text # => "ohai! div is safe "

Que dis-tu de ça?

 white_list_sanitizer = Rails::Html::WhiteListSanitizer.new WHITELIST = ['p','b','h1','h2','h3','h4','h5','h6','li','ul','ol','small','i','u'] [Your, Models, Here].each do |klass| klass.all.each do |ob| klass.atsortingbute_names.each do |attrs| if ob.send(attrs).is_a? Ssortingng ob.send("#{attrs}=", white_list_sanitizer.sanitize(ob.send(attrs), tags: WHITELIST, atsortingbutes: %w(id style)).gsub(/

\s*< \/p>\r\n/im, '')) ob.save end end end end