2012-03-30 79 views
0

這是我傳遞主題行的方法特殊字符得到更換

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

的方式,是這兩種方法在這裏我想替換所有特殊字符

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 

和常量在模型中是

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

但是第一種方法調用所有特殊字符被替換爲null 和第二種方法調用不返回任何值

+1

如果我的情況和更換我&amd;「'由" rrplaced我想有一部開拓創新的標誌 – SSP 2012-03-30 06:02:58

回答

0

而不是這樣,您可以使用清理助手刪除特殊字符。

檢查鏈接: http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

+1

如果我的情況和更換更換我&amd;」'由" rrplaced我想更換它與orignal標誌 – SSP 2012-03-30 06:03:08

+0

你想顯示這樣的輸出,我認爲你不需要轉換特定的字符。 Rails視圖助手將自動轉換爲所需的輸出。使用'h','raw','html_safe'助手。欲瞭解更多信息,請看看http://stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape-html – Vik 2012-03-30 06:11:25

+1

我用過所有這些東西,但它不工作,爲什麼我不能以確定 – SSP 2012-03-30 06:23:04