我有一个与ActiveModel持久性相关的有趣问题。我们的环境要求某些模型更新的行为如下:
接收更新请求的实例已归档,这意味着,其状态保持为更新前的状态,但归档字段设置为true除外。
创建了一个新实例,其中包含原始实例的更新属性,但创建了新的id
。
更新操作的调用者所持有的对象必须像新实例一样,这意味着,必须将此行为封装在模型中作为传统更新处理的一部分。
around_update
回调可能会提供一个好的钩子,但是棘手的部分是现有对象的id
必须更改为新实例的id
而我是'我不确定这是否会在持久性,缓存等方面混淆Rails。
我很感激around_update
方法的评论以及如何解决这个问题的新想法。我们正在使用Mongoid 2.4,但我希望得到一个适用于ActiveModel的答案。