4
假設我想定義一些方法和幫助器,這些方法和幫助器將在所有我的ActiveRecord
模型中可用。活動記錄幫助器方法 - 使用模塊與繼承
的研究有一點告訴我,一般有兩種選擇
模塊
定義模塊
module MyModule
def foo
# ...
end
end
它包含在模型當你需要它
class User < ActiveRecord::Base
include MyModule
before_save :foo
end
繼承
定義一個基類
class BaseModel < ActiveRecord::Base
# Define as abstract so AR doesn't assume there's a table named `base_models`
self.abstract_class = true
def foo
# ...
end
end
使所有車型,從它
class User < BaseModel
include MyModule
before_save :foo
end
繼承哪些優點/缺點每個 - 有沒有在做這件事的一種方式任何特別的優勢?有沒有更多的被認爲是「Rails方式」?
謝謝!
謝謝! 'has'與'is'概念是定義對象關係的好方法 – user2490003