Jawaban:
Ada strip_tags
metode dalam ActionView::Helpers::SanitizeHelper
:
http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Edit: untuk mendapatkan teks di dalam atribut nilai, Anda dapat menggunakan sesuatu seperti Nokogiri dengan ekspresi Xpath untuk mengeluarkannya dari string.
Jika kita ingin menggunakan model ini
ActionView::Base.full_sanitizer.sanitize(html_string)
yang merupakan kode dalam metode "strip_tags"
require 'html/sanitizer'
dan memberi contoh pembersih Anda sendiri HTML::FullSanitizer.new
.
require 'html/sanitizer'
menimbulkan kesalahan jadi saya harus menggunakan: Rails::Html::FullSanitizer.new
( edgeapi.rubyonrails.org/classes/HTML/… )
Ya, sebut ini: sanitize(html_string, tags:[])
ActionView::Base.full_sanitizer.sanitize(html_string)
Daftar putih tag dan atribut dapat ditentukan seperti di bawah ini
ActionView::Base.full_sanitizer.sanitize(html_string, :tags => %w(img br p), :attributes => %w(src style))
Pernyataan di atas memungkinkan tag img , br dan p dan atribut src dan gaya .
Saya telah menggunakan pustaka Loofah, karena cocok untuk HTML dan XML (baik dokumen maupun fragmen string). Ini adalah mesin di belakang permata pembersih html. Saya hanya menempelkan contoh kode untuk menunjukkan betapa sederhananya penggunaannya.
unsafe_html = "ohai! <div>div is safe</div> <script>but script is not</script>"
doc = Loofah.fragment(unsafe_html).scrub!(:strip)
doc.to_s # => "ohai! <div>div is safe</div> "
doc.text # => "ohai! div is safe "
Bagaimana dengan ini?
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.attribute_names.each do |attrs|
if ob.send(attrs).is_a? String
ob.send("#{attrs}=", white_list_sanitizer.sanitize(ob.send(attrs), tags: WHITELIST, attributes: %w(id style)).gsub(/<p>\s*<\/p>\r\n/im, ''))
ob.save
end
end
end
end
Rails::Html::FullSanitizer.new
jika Anda tidak ingin menentukan daftar putih.
text.strip
bekerja