我可以在控制器中这样做是为了让模型类:什么是从控制器获取模型类的Rails方法?
self.class.name.gsub("Controller", "").singularize.constantize
但有一个内置的方法在此控制器?
类似self.model_class
?
谢谢!
我可以在控制器中这样做是为了让模型类:什么是从控制器获取模型类的Rails方法?
self.class.name.gsub("Controller", "").singularize.constantize
但有一个内置的方法在此控制器?
类似self.model_class
?
谢谢!
ActionPack
和ActiveRecord
是单独的模块,所以没有内置的支持。
另一种方式:
controller_name.classify
这会切断命名空间 – jmoreira 2013-11-22 15:07:15
这些是等效的: – 2014-11-15 00:03:10
预期的完整注释:controller_name.classify()等同于self.class.name.gsub(“Controller”,“”).singularize ()。在我看来,将模型与控制器相关联的需求很常见,例如,如果您有ORM层次结构。将相同的代码复制到每个子类中是浪费的(例如,new()),只需更改模型名称。 – 2014-11-15 00:11:15
岂不'@ model_obj.class.constantize'工作? – Jimmy 2010-10-25 18:31:12