2010-07-18 76 views
0

我試圖訪問全局系統設置的模型。它應該幾乎加載到每個控制器中。問題是我找不到任何幫助獲得導軌加載大壩的事情。如何將具有自定義名稱的模型加載到控制器中

如果這有幫助,該模型稱爲配置,並有兩列; 'key'and'value'

我來自PHP的背景。我記得codeigniter可以通過加載模型。

$this->load->model('a_model_name');

我試圖在不具有相同的名稱作爲模型加載模型的控制器。

回答

2

這裏的問題實際上是模型的名稱。配置被其他的Rails類 - 看到導軌上的list of reserved names維基

+0

ooooh哈哈哈這是男人這是非常有益的,歡呼聲。 (耶,我可以去玩得開心!) – 2010-07-19 04:07:59

1

Rails會在需要時自動加載類。只要該類在同名的文件中,並且在Rails尋找類的目錄之一中,您只需使用該類就好像它已被加載,並且Rails會自動加載它

+0

我已經這樣做了,但在不久之後才意識到,它僅在與控制器共享同一名稱時才加載模型。我的模型名稱與控制器名稱沒有任何相似之處,所以它永遠不會被加載。 – 2010-07-18 23:03:09

+0

不,這不是事實。控制器在這裏並不重要。如果仍然存在問題,那就是在其他地方。如果打開./script/console並鍵入模型的名稱,會發生什麼情況? – Gareth 2010-07-18 23:08:09

+0

我鍵入配置,它所做的全部讀出我輸入的內容 >>配置 =>配置 – 2010-07-18 23:16:22

0

假設,if你想用一個特定的密鑰加載一段信息,你可以使用Config.find_by_key('the_key_you_want')來獲得有問題的記錄。

我不確定這是處理您的配置的最佳方式,但這取決於您的系統需要如何工作。

編輯:

沒看到你更新的問題之前,我貼我的回答,好像我誤解你的意思。 Gareth的答案看起來像是一個公平的答案,如果在這裏留下這個答案是有用的。

1

你可以在ApplicationController中添加before_filter

before_filter :load_config 

... 
private 
def load_config 
    something 
end 

默認情況下,在Rails的所有控制器繼承的ApplicationController,所以所有的控制器將執行load_config方法在開始。

順便說一句,我真的很喜歡rails-settings gem /插件的配置。這可能是你需要的東西。並在需要時加載數據,因此你不必在每個控制器加載配置,只是當你需要一定的價值,那麼你只是做:

Settings.key 

,你會得到你想要的。

+0

我會把這個廣告給我的感謝 – 2010-07-19 04:08:20

相關問題