我在从模型根目录中的模型继承子目录一堆模型。我希望能够在列出每个继承模型类的另一个模型中设置一个类变量。如何从我的应用程序内获得型号名称?
即
@@groups = sub_models.map do { |model| model.class.to_s }
不知道如何在这个信息虽然得到...
我在从模型根目录中的模型继承子目录一堆模型。我希望能够在列出每个继承模型类的另一个模型中设置一个类变量。如何从我的应用程序内获得型号名称?
即
@@groups = sub_models.map do { |model| model.class.to_s }
不知道如何在这个信息虽然得到...
有一个完整的答案here。基本上,你可以通过文件或猴子补丁类(或ActiveRecord的)巨魔。至少,这是两条路。第二个想法是,Rails将不会加载你的模型直到需要,所以虽然“文件”方式似乎很弱,但它可能是你唯一的选择(除非你想在你的模型中自己做一些事情)。
在Rails中,在生产ENV这应该工作
Object.subclasses_of ClassInModelDir
你要载入的文件手动如果Rails.env.development?
除非你预装的后代车型您将无法做到这一点。这就是为什么重新设计代码以使用Class#ancestors
而不是descendants
(后代不是Ruby核心功能)的谨慎原因。