我想在視圖中顯示MyModel子類的選擇列表。它不工作呢,所以對於健全檢查,我包括這在我的觀點:RoR:在第一次調用之後,MyModel.descendants在視圖中返回[]?
<%= MyModel.descendants %>
的第一一次渲染重新啓動服務器後,這個頁面,它顯示後裔的名單(有六個)。全部後續次,它顯示爲空列表[]
。
FWIW,我在我的初始化一個require
聲明:
Dir[Rails.root.join("app/models/my_models/**/*.rb").to_s].each {|f| require f}
...我已經驗證了他們得到必需的。
什麼@($%&是怎麼回事?
+1對於發生什麼事的清晰解釋 - 謝謝。不幸的是,我的子類有「首字母縮略詞」名稱,比如「PGEService」,其名稱如「pge_service.rb」。我還沒有準備好將我的文件重命名爲'p_g_e_service.rb' - 至少現在還沒有! – 2011-05-07 04:30:17
那麼,如果你的文件被命名爲PGEService.rb,你可以使用文件名(不帶'。classify'),但是如果它仍然是'pge_service.rb',我看不到任何簡單的解決方案...除非你做's = File.basename(f,'。rb')。split('_ 「); class_name = s.first.upcase + s.last.classify; MyModels.const_get(CLASS_NAME)'。是的,我知道有點難看。 – Wam 2011-05-08 16:45:03
嚴格來說,你DID回答了我的問題「發生了什麼事」。所以你應該得到複選標記。我已經完善了我的問題,但我會把它作爲一個單獨的問題發佈。向前! – 2011-05-25 03:43:11