我想在视图中显示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