2011-09-12 69 views
0

我使用的輸入法菜單:Rails的「問題

我有這樣一個問題:

def convert_html_entities(text) 
    text = text.gsub(/["]/, '"') 
end 

的輸入法菜單的顏色也都是綠色的,因爲缺少」

我曾嘗試這種解決方案它刪除了所有的綠色文字和代碼看起來是正常的:

def convert_html_entities(text) 
    text = text.gsub(/['"']/, '"') 
end 

,但它只是在vi給了一個錯誤EW:

undefined method `convert_html_entities' for #<XmlController:0x448cef0> 

Rails.root: C:/Rails/kimnew 
Application Trace | Framework Trace | Full Trace 

lib/update_xml.rb:21:in `block in update_xml' 
lib/update_xml.rb:19:in `update_xml' 
app/controllers/xml_controller.rb:21:in `test' 

回答

1

顯然,你沒有定義convert_html_entities作爲XmlController的實例方法,所以你不能把它作爲一個。

您的代碼的另一個問題是重新分配方法參數,對外部沒有任何影響。所以text = text.gsub(/['"']/, '&quot;')text.gsub(/['"']/, '&quot;')相同。如果你想改變你的論點,你需要使用gsub!。這就是說:不要改變方法的參數。這是不好的風格。

+0

我會接受你的回答 –

0

你在哪裏定義了你的方法?你的問題是因爲你的控制器找不到它,所以如果你想在多個控制器中使用它,或者如果你想在視圖中使用它,你可以在控制器中包含一個幫助器,那麼應​​該在你的ApplicationController中定義它。

另外,如果你想安全地轉換HTML實體,你可以使用CGI::escapeHTML