0
私は好きなように似たように見えるactiverecordクラスの束を持っています!ポリモーフィックアクティブレコードクラスをどのようにDRYするのですか?
ベースクラスを拡張してメソッドをDRYすることはできますか、それともレールを混乱させるのですか?
多分私はいくつかのものを共有することができますが、他のものはありませんか?
もしそうでなければ、どうすればいいですか?あなたがこの問題のための単一テーブル継承を使用することができます)
class Stage < ActiveRecord::Base
acts_as_taggable
has_many :services, :as => :serviceable
belongs_to :event
belongs_to :user
after_save :tag!
def t(s)
self.tag_list.add s
self.event.tag_list.add s
end
# injected to after_save -> http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
def tag!
s = self
if s.id > 0 then s.t "id-greater-than-0" end
if s.id > 0 then s.t "some-stage-specific-stuff" end
self.tag_list
end
end
class Sound < ActiveRecord::Base
acts_as_taggable
has_many :services, :as => :serviceable
belongs_to :event
belongs_to :user
after_save :tag!
def t(s)
self.tag_list.add s
self.event.tag_list.add s
end
# injected to after_save -> http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
def tag!
s = self
if s.id > 0 then s.t "some-sound-specific-stuff" end
self.tag_list
end
end