Ich versuche, einen Teil der Inhalte, die von den Nutzern meiner App mit einem Rich-Text-Editor eingefügt wurden, zu bereinigen.Wie beginne ich mit Rail's Gem Sanitize, weil ich nicht in der Lage bin, ihr Schnellstart-Beispiel zu machen?
habe ich installiert die sanitize gem über Bündel installieren
und es erscheint auf der Liste der Edelsteine installiert, fügte dann require 'sanitize'
in application_controlled.rb
hat dieses Testcode in einem meiner Ansichten: <%= Sanitize.fragment('<p>1st <strong>sanitized </strong>comment</p>', Sanitize::Config::RELAXED) %>
aber die Ausgabe ist <p>1st <strong>sanitized </strong>comment</p>
und ich habe keine Ahnung, warum oder wie zu folgen, was damit nicht stimmt.
wahr zu sein scheint. Aber ist es nicht der Sinn zu sanieren, um 'html_safe' selbst anzuwenden? Ich meine, ist es nicht der Zweck von Sanitize, um 'html_safe' Ergebnisse zu erzeugen, außerdem wenn man seine vordefinierten Konfigurationen (BASIC, RELAXED ...) benutzt? – Catalin
Für mich liegt der Sinn von 'sanitize' darin, möglicherweise bösartigen HTML zu entfernen, so dass Sie' # html_safe' mit einiger Sicherheit verwenden können. Soweit ich weiß, "sanitize" Ausgabe as-is reagiert "falsch" mit '#html_safe?', So dass Sie diesen zusätzlichen Schritt benötigen. Außerdem würde ich dazu neigen, den Ausgabe-String im Controller-Code zu erstellen, einschließlich des '# html_safe', so dass Checker wie' brakeman' keine falschen Positiven geben. – SteveTurczyn
Ich habe noch 1 Frage. Als gute Praxis sollte die Bereinigung der Ausgabe im Controller einfach eine Frage sein von: 'def show @comment = @ post.comments.find (params [: id]) @ comment.content = Sanitize.fragment (@ comment.content). html_safe() end'? – Catalin