我試圖訪問全局系統設置的模型。它應該幾乎加載到每個控制器中。問題是我找不到任何幫助獲得導軌加載大壩的事情。如何將具有自定義名稱的模型加載到控制器中
如果這有幫助,該模型稱爲配置,並有兩列; 'key'and'value'
我來自PHP的背景。我記得codeigniter可以通過加載模型。
$this->load->model('a_model_name');
我試圖在不具有相同的名稱作爲模型加載模型的控制器。
我試圖訪問全局系統設置的模型。它應該幾乎加載到每個控制器中。問題是我找不到任何幫助獲得導軌加載大壩的事情。如何將具有自定義名稱的模型加載到控制器中
如果這有幫助,該模型稱爲配置,並有兩列; 'key'and'value'
我來自PHP的背景。我記得codeigniter可以通過加載模型。
$this->load->model('a_model_name');
我試圖在不具有相同的名稱作爲模型加載模型的控制器。
這裏的問題是實際上是模型的名稱。配置被其他的Rails類 - 看到導軌上的list of reserved names維基
Rails會在需要時自動加載類。只要該類在同名的文件中,並且在Rails尋找類的目錄之一中,您只需使用該類就好像它已被加載,並且Rails會自動加載它
我已經這樣做了,但在不久之後才意識到,它僅在與控制器共享同一名稱時才加載模型。我的模型名稱與控制器名稱沒有任何相似之處,所以它永遠不會被加載。 – 2010-07-18 23:03:09
不,這不是事實。控制器在這裏並不重要。如果仍然存在問題,那就是在其他地方。如果打開./script/console並鍵入模型的名稱,會發生什麼情況? – Gareth 2010-07-18 23:08:09
我鍵入配置,它所做的全部讀出我輸入的內容 >>配置 =>配置 – 2010-07-18 23:16:22
假設,if你想用一個特定的密鑰加載一段信息,你可以使用Config.find_by_key('the_key_you_want')
來獲得有問題的記錄。
我不確定這是處理您的配置的最佳方式,但這取決於您的系統需要如何工作。
編輯:
沒看到你更新的問題之前,我貼我的回答,好像我誤解你的意思。 Gareth的答案看起來像是一個公平的答案,如果在這裏留下這個答案是有用的。
你可以在ApplicationController中添加before_filter
:
before_filter :load_config
...
private
def load_config
something
end
默認情況下,在Rails的所有控制器繼承的ApplicationController,所以所有的控制器將執行load_config
方法在開始。
順便說一句,我真的很喜歡rails-settings
gem /插件的配置。這可能是你需要的東西。並在需要時加載數據,因此你不必在每個控制器加載配置,只是當你需要一定的價值,那麼你只是做:
Settings.key
,你會得到你想要的。
我會把這個廣告給我的感謝 – 2010-07-19 04:08:20
ooooh哈哈哈這是男人這是非常有益的,歡呼聲。 (耶,我可以去玩得開心!) – 2010-07-19 04:07:59