我在Ruby on Rails中有多個需要共享類方法的Active Record數據模型。我可以輕鬆地在所有類中聲明方法,但這違背了DRY原則。如何在Rails中的多個數據模型之間共享類方法?
我已經看過聲明一個模塊並使用'include'來混入代碼,但似乎只適用於實例方法,而不是類方法。
在Ruby/Rails中執行此操作的首選方法是什麼? (我試圖創建一個基本的ActiveRecord類並從中繼承,但ActiveRecord嚇壞了)。
我在Ruby on Rails中有多個需要共享類方法的Active Record數據模型。我可以輕鬆地在所有類中聲明方法,但這違背了DRY原則。如何在Rails中的多個數據模型之間共享類方法?
我已經看過聲明一個模塊並使用'include'來混入代碼,但似乎只適用於實例方法,而不是類方法。
在Ruby/Rails中執行此操作的首選方法是什麼? (我試圖創建一個基本的ActiveRecord類並從中繼承,但ActiveRecord嚇壞了)。
的ClassMethods成語是一個模塊,同時提供類和實例方法的常用方法:http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
,如果你創建一個抽象基類的ActiveRecord不應驚慌,只要你在這個類調用self.abstract_class = true
:http://api.rubyonrails.org/classes/ActiveRecord/Inheritance/ClassMethods.html
Bingo中聲明你的表名! self.abstract_class = true是我所缺少的。謝謝。 – 2012-04-14 15:42:08