ほぼ同じモデルを 2 つ持っています。これらのモデル間で動作を共有できるように、1 つ以上の mixin を作成したいと考えています。考えられるすべてのバリエーションを含むモデルの例を次に示します。
class Model < ActiveRecord::Base
STATUS_OPTIONS = ['new', 'approved', 'rejected', 'deleted']
attr_accessible :status
validates_inclusion_of :status, :in => STATUS_OPTIONS
def self.custom_finder(status)
find_by_status(status)
end
def simple_instance_method
'easy'
end
end
Ruby モジュールからインスタンス メソッドをインクルードする基本のいくつかは理解していますが、ActiveRecord クラス メソッドや定数などのより高度な機能については混乱しています。
module ModelClassMethods
def custom_finder(status)
find_by_status(status)
end
end
module ModelInstanceMethods
def simple_instance_method
'easy'
end
end
class Model < ActiveRecord::Base
STATUS_OPTIONS = ['new', 'approved', 'rejected', 'deleted']
attr_accessible :status
validates_inclusion_of :status, :in => STATUS_OPTIONS
extend ModelClassMethods
include ModelInstanceMethods
end
定数と検証メソッドを抽出するにはどうすればよいですか?