2012-04-11 2 views
0

Ich habe ein einfaches Formular, wo ein Benutzer etwas Text schreiben kann und dieser Text wird an seine E-Mail gesendet werden. Dieses Verfahren funktioniert gut, aber ich habe ein Problem mit dem Text, dass Benutzer geschrieben - in der E-Mail wird wie folgt angezeigt:Ruby - HTML-Tags werden nicht in Formatierungs-Tags konvertiert

["sadgsdah\r\nsdh\r\ndsf\r\nh\r\nfdhdfhdfh\r\n\r\n\r\n\r\nfdh\r\ndf\r\njh"] 

warum gibt es die Klammern und die \n und \r Zeichen?

Vor als ich die Variable mit dem Inhalt in der E-Mail-Vorlage geben, habe ich versucht, folgendes zu tun:

mess_body = params [: Kontakt] [: message] .to_s.html_safe

Aber leider hat mir das nicht geholfen ... was mache ich falsch?

Antwort

0

Vor allem

mess_body = params[:contact][:message] 

gibt einen Array, nicht eine einzige Sache. Deshalb erhalten Sie die ["und"] um die Ausgabe. Sie könnte das erste Element wie diese:

mess_body = params[:contact][:message][0] 

Weiterhin \ n \ r Zeilenenden eines Textfeldes. Unter der Annahme, dass die E-Mail Sie senden ist HTML die \ n \ r sollte von <br> im String

+0

Ja, ich habe total vergessen für dieses Array anstelle von String. Aber immer noch das Problem mit '\ n \ r' - sie werden nur durch den Leerraum ersetzt, nicht durch die neue Zeile - so sehe ich das in der Mailbox. Aber wenn ich mir das Logbuch des Projekts anschaue, werden korrekt 'neue Zeilen'-Tags angezeigt ... – user984621

+0

Wenn der Text in eine HTML-Nachricht eingeht, werden Zeilenumbrüche nur visuell konvertiert - um HTML einen Zeilenumbruch zu erzwingen , brauchen Sie einen
Tag – DGM

+0

@DGM Sie meinen ich muss '\ n \ r' Zeichen in'
'manuell umwandeln'? – user984621

1

ersetzt werden Zeilenumbrüche konvertieren rechts in html zu suchen, verwenden Sie simple_format den Text zu konvertieren.