2010-09-21 10 views
8

Nun, dass Rails 3 alle ausgewerteten Elemente in Ansichten (gut) entkommt, aber es entgeht auch meine Flash-Nachricht. Und ich mag den gelegentlichen Link in meiner Flash-Nachricht (oder stark oder Betonung).Rail 3 - Flash-Nachrichten entkommen, der beste Weg zur Unesco

Eine Flash-Mitteilung:

flash[:notice] = "<strong>Bob</strong> was sucessfully checked in.<br />If you made a mistake, you can <a href=\"/scouts/#{@scout.id}/check_out\">check out Bob</a> to undo." 

verstümmelt Becomes, entkam, unbrauchbar.

Ich kann die Nachricht raw mit unescape:

- flash.each do |name, msg| 
    = content_tag :div, raw(msg) 

Aber jetzt jeder Flash-Mitteilung ist unescaped.

Wie kann ich nur eine einzige Flash-Nachricht entpacken? oder nur Teile der Nachricht?

Antwort

11

Probieren Sie html_safe in Ihrem Controller für jede Nachricht, die Sie entkommen möchten. Dadurch können Sie die RAW-Funktion aus der Ansicht und aus der Sicht entfernen, die nur in der Steuerung enthalten ist.

flash[:notice] = "test<br/>test".html_safe 
+1

Perfekt. Vielen Dank. Dies half auch: http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/ – Karl

+0

Dies wird nicht funktionieren von innerhalb des Controllers in Schienen 5. Es ist tatsächlich empfohlen, rohe in der verwenden Ansicht, siehe https://apidock.com/rails/String/html_safe – count0

Verwandte Themen