2010-03-17 55 views
0

所以我有這樣的代碼我的lib /文件夾中:Rails的:內用LIB表單標籤

class GlobalConfig::SetHelper 
    def self.yes_no_input(configuration) 
    value = configuration.value 
    name = configuration.name 
    "#{radio_button_tag name, true, (value == true), {:id => "#{name}_yes"}} #{label_tag "#{name}_yes", 'yes'} 
    #{radio_button_tag name, false, (value.blank? or value == false), {:id => "#{name}_no"}} #{label_tag "#{name}_no", 'no'}" 
    end 
end 

但它返回: 未定義的方法`radio_button_tag」的GlobalConfig :: SetHelper: 類當我運行碼。

我該如何解決這個問題。任何人?

感謝

回答

0

您需要在您的助手的助手用這種方法:


class GlobalConfig::SetHelper 
    include ActionView::Helpers::FormTagHelper 
end 
+0

我想我以前曾嘗試過,但我會再試一次,也許我寫錯了。我會告訴你! – jaycode 2010-03-18 12:08:12

+0

代碼變得太大我沒有時間檢查這個,如果有人可以驗證,將不勝感激。 – jaycode 2010-04-08 19:18:56

+0

工作,謝謝! – jaycode 2010-08-28 10:34:29

3
  1. 你爲什麼把這個變成libapp/helpers是放置像這樣的幫助方法的標準地方。
  2. 將輔助方法作爲輔助類的類方法是不行的。你應該把它作爲一個實例方法。然後把這個代碼到你的控制器:

    helper GlobalConfig::SetHelper

    ,你就會有你的看法內部訪問它的方法。像radio_button_tag這樣的標準幫手方法也可以同時工作。

+0

我知道這將是一塊蛋糕做像這樣,這就是我現在正在做的直到我找到解決方案。 基本上我的網站將有我在數據庫中定義的各種配置設置(因此非程序員網站管理員可以輕鬆更改它們)。 有些配置並不簡單,例如,國家需要國家選擇器,但對於大多數其他事情可以使用文本輸入。 爲了方便其他程序員(或我自己)添加新的輸入樣式,我將函數封裝在lib文件夾config/set_helpers和config/get_helpers中。 這是可能的嗎? – jaycode 2010-03-18 10:35:50