0

私たちのサイトのコメントが破棄されると、after_destroyコールバックは統計を更新するために使用されます。

after_destroy do |p|
  p.topic.update_attribute(:replies, p.replies - 1)
end

コメントが「ソフト削除」されたときにも同じことができるようにしたいと思います。コメントがソフト削除されると、comment.visibleフィールドはからに設定さ10ます。

更新コールバック中にこれがいつ発生するかを知る方法はありますか?何かのようなもの:

after_update do |p|
  if p.visible was changed from 1 to 0, then update stats.
    p.visible.update_attribute(:replies, p.replies - 1)
  end
end
4

1 に答える 1

2

あなたはp.visible_changed?それが変わったかどうか見るために行うことができます。ActiveModel::Dirtyまた、すべてのデフォルトで使用可能な他のメソッドを使用して、何から変更され、何に変更されたかを確認できますActiveRecords

于 2012-09-14T02:53:16.343 に答える