2016-06-08 10 views
1

Wenn ich html_safe verwenden,Warum verliere ich bei der Verwendung von simple_format in Ruby auf Rails 4.2.6 die Formatierung?

<%= @micropost.content.html_safe %> 

bekomme ich folgende Ausgabe mit der richtigen Formatierung.

enter image description here

Aber wenn ich simple_format verwenden, verliere ich die Mitte ausrichten und Zeilenumbrüche immer in der Liste, die ich nicht will.

<%= simple_format(auto_link(@micropost.content, html: { target: '_blank' }), {}, :sanitize => false) %> 

enter image description here

Dies ist, was ich bekomme, wenn ich falsch verwenden auto_link allein sanieren mit.

<%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: false) %> 

enter image description here

Dies ist, was ich bekomme, wenn ich wahr mit sanitize allein verwenden auto_link.

<%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: true) %> 

enter image description here

Dies ist, was ich in der Post haben

>> micp.content 
=> "<p style=\"text-align: center;\">Pictre </p><h2 style=\"text-align: center;\">restse</h2><h2>sfsdfsdf</h2><p>sdfdsf</p><p style=\"text-align: center;\">dsfds</p><p>sfsdfsdf</p><ol><li>sdfdsfsdf</li><li>sdfsdfdsf</li><li>sdfdsf</li></ol><div>dfsdfsdfsd</div><p style=\"text-align: center;\">dfsdf</p><ol><li>dsfsdf</li><li>sdf</li><li>sdfsd</li></ol><p style=\"text-align: center;\"><br></p>" 
>> 

Wie löse ich diese und die Formatierung haben, die der Benutzer in seinen/ihren Beitrag wollte? Vielen Dank. Diese

Antwort

0

ist der API-Dokumentation:

simple_format - Gibt Text in HTML transformiert mit einfachen Formatierungsregeln. Zwei oder mehr aufeinanderfolgende Zeilenumbrüche (\ n \ n) werden als Absatz betrachtet und in <p> Tags eingepackt. Eine neue Zeile (\ n) ist , die als Zeilenumbruch betrachtet wird, und ein <br />-Tag wird angehängt. Diese Methode entfernt die Zeilenumbrüche nicht aus dem Text.

Also statt:

<%= simple_format(auto_link(@micropost.content, html: { target: '_blank' }), {}, :sanitize => false) %> 

sollten Sie tun, wahrscheinlich die folgenden:

<%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: false) %> 

Siehe simple_format und rails_autolink für weitere Informationen.

+0

Ich habe Ihre Lösung versucht und ich bekomme nur HTML-Tags. Ich habe die Ausgabe in der Frage aktualisiert. – LovingRails

+0

Versuchen Sie mit 'sanitize: true' – Dharam

+0

Ich bekomme jetzt die Ausgabe, aber ich verliere immer noch die Formatierung. – LovingRails

Verwandte Themen