2009-06-12 31 views
0

我有10款,其中3需要而它們恰巧是一些額外的定製方法:ActiveRecord的模型 - 添加自定義方法

has_staged_version? 
apply_staged_version 
discard_staged_version 

我想一旦定義這些方法。

我可以創建一個ActiveRecord的自定義子類:Base,定義那裏的方法,並讓我的3個模型繼承它。但是有沒有更多的「Ruby/Rails」方法來實現?

乾杯

回答

1

您可以創建一個模塊,並有模型的類包括它:

module StagedVersionMethods 
    def has_staged_version? 
    end 

    def apply_staged_version 
    end 

    def discard_staged_version 
    end 
end 

Model.send :include, StagedVersionMethods 
+0

非常感謝 - 這是我之後的事情。 – Paul 2009-06-12 15:14:24

0

你的課程是做什麼的?是否使用子類或模塊的選擇更多的是基於類本身的語義問題。