【发布时间】:2014-11-25 21:04:31
【问题描述】:
我有这样的事情:
class Post < ActiveRecord::Base
has_many :tag_members
has_many :tags, through: :tag_member
end
class Tag < ActiveRecord::Base
has_many :tag_members
has_many :posts, through: :tag_member
end
class TagMember < ActiveRecord::Base
belongs_to :tag
belongs_to :image
end
我想跟踪对 post 对象的编辑。最简单的方法似乎是这样的:
class Post < ActiveRecord::Base
before_update :save_edits
def save_edits
# Assuming save_edit takes in a hash and persists it somehow
save_edit(self.changes)
end
end
但是,根据我所做的测试,在 Post 上的 has_many association 中添加新的 Tag 不会运行 before_update 回调,并且不会在 .changes 返回的哈希中存储任何内容。
跟踪这些类型的编辑的最佳方法是什么?我应该简单地重载.tags= 方法来进行自己的存储,还是有更好的方法?
【问题讨论】:
标签: ruby-on-rails ruby rails-activerecord