1
我已經下面的代碼,並嘗試了整整一天的重構類方法到一個sperate模塊與我的所有模型類共享功能。ruby/datamapper:重構類方法到模塊
class Merchant
include DataMapper::Resource
property :id, Serial
[...]
class << self
@allowed_properties = [:id,:vendor_id, :identifier]
alias_method :old_get, :get
def get *args
[...]
end
def first_or_create_or_update attr_hash
[...]
end
end
end
我想存檔是這樣的:
class Merchant
include DataMapper::Resource
include MyClassFunctions
[...]
end
module MyClassFunctions
def get [...]
def first_or_create_or_update[...]
end
=> Merchant.allowed_properties = [:id]
=> Merchant.get(:id=> 1)
但不幸的是,我的紅寶石技能是不好的。我讀了很多東西(例如here),現在我更加困惑。我絆了以下兩點:
alias_method
會失敗,因爲它會在DataMapper::Resource
模塊中動態定義。- 如何獲得包含模塊的類方法
allowed_properties
?
什麼是紅寶石的方式去?
非常感謝提前。