2012-03-30 13 views
0

dies ist ein Weg, den ich Betreffzeile ein VerfahrenSonderzeichen ersetzt bekommen

@subject_text = html_subject(@customer_alert.alert.name) 
@subject_text = html_sub(@customer_alert.alert.name) 

und dies sind die beiden Methoden bin vorbei, wo ich ersetzen möchte alle Sonderzeichen

def html_subject(s) 
    s = s.to_s 
    if s.html_safe? 
    s 
    else 

    s.gsub(/[&><"]/) { |special| CustomerAlert::SUBJECT_LINE[special] } 
    end 
end 
def html_sub(s) 
    s = s.to_s 
    if s.html_safe? 
    s 
    else 

    if s.gsub(/&/,'&') 
    end 
    #{ |special| CustomerAlert::SUBJECT_LINE[special] } 

    if s.gsub(/>/,'>') 
    end 

    if s.gsub(/&lt;/,'<') 
    end 

    if s.gsub(/&quot;/,'"') 

end 
s 
    end 
    end 

und konstant definierte Modell ist in

SUBJECT_LINE = { '&amp;' => '&', '&gt;' => '>', '&lt;' => '<', '&quot;' => '"' } 

aber zuerst Methoden aufrufen alle Sonderzeichen durch null ersetzt wird und der zweite Methodenaufruf gibt keinen Wert zurück.

+1

wenn mein Fall und ersetzt meine &amd; „'rrplaced von " möchte ich es mit Orignal Zeichen ersetzen – SSP

Antwort

0

Stattdessen können Sie den Desinfektionshelfer verwenden, um Sonderzeichen zu entfernen.

Überprüfen Sie den Link: http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

+1

wenn mein Fall und ersetzt meine &amd;“' rrplaced durch " ich will ersetzen es mit orignal Zeichen – SSP

+0

wo Sie solche Ausgabe anzeigen möchten, denke ich, dass Sie bestimmte Zeichen nicht konvertieren müssen. Der Rails-View-Helfer wird automatisch in die gewünschte Ausgabe konvertiert. Verwenden Sie 'h', 'rohe', 'html_safe' Helfer. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape-html – Vik

+1

Ich habe all diese Sache verwendet, aber es funktioniert nicht, warum ich nicht in der Lage bin identifizieren – SSP