我有一個簡單的模型,它具有創建關聯記錄的after_create過濾器。在創建子記錄時跳過創建paper_trail的版本
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
但是,創建一個Subject
現在這e.g將創建兩個版本的同一主題,一個create
之前和update
的主題已經改變後兩個議題的結果。
關於如何解決這個問題的任何想法?
更新
的主題模型是不是從主題的子類,而是屬於它。他們也有一個paper_trail,並應該從創建過程開始直到主題。
class Topic
belongs_to :subject
end
是主題主題的一個子類?如果這樣Topic將繼承回調,並且它會被self.topics.create觸發 – RadBrad
Topic是一個單獨的模型,而不是一個子類。 – pduersteler
更新的問題,感覺像我沒有提供的一切。 – pduersteler