我可以在控制器中這樣做是爲了讓模型類:什麼是從控制器獲取模型類的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