アソシエーションレコードを作成するafter_createフィルターを備えた単純なモデルがあります。
class Subject
after_create :create_topics!
has_paper_trail :on => [:create, :update],
:ignore => [:topics]
private
def create_topics!
self.account.default_topics_for_subject_type(self.subject_type).each do |topic|
self.topics.create!({:name => topic.name})
end
end
end
ただし、たとえば2つのトピックを作成するnowを作成すると、トピックが変更される前と後Subject
の同じ主題に対して2つのバージョンが作成されます。create
update
これを解決する方法について何かアイデアはありますか?
更新
トピックモデルは主題からのサブクラスではありませんが、それに属しています。また、paper_trailもあり、作成プロセスの最初から件名までバージョン管理する必要があります。
class Topic
belongs_to :subject
end