Ruby on rails 如何检测Ruby实例在创建后是否已更改?

Ruby on rails 如何检测Ruby实例在创建后是否已更改?,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何检测Ruby实例在创建后是否已更改 我试图避开像ActiveModel::Dirty这样的已知gem,并编写一个轻量级解决方案,如果对象的实例变量在某一点之后发生更改,该解决方案将返回简单的true或false 这也适用于常规Ruby对象,而不是Rails对象,因此特定于Rails的工具不起作用 我看到一些关于劫持attr_writer的帖子,但我不知道这是否全面,我也不知道该怎么做 有人能帮我吗?谢谢。AFAIK没有轻量级的解决方案。一种可能的破解方法是编写一个C扩展插件,插入GC并检查某

如何检测Ruby实例在创建后是否已更改

我试图避开像ActiveModel::Dirty这样的已知gem,并编写一个轻量级解决方案,如果对象的实例变量在某一点之后发生更改,该解决方案将返回简单的true或false

这也适用于常规Ruby对象,而不是Rails对象,因此特定于Rails的工具不起作用

我看到一些关于劫持attr_writer的帖子,但我不知道这是否全面,我也不知道该怎么做


有人能帮我吗?谢谢。

AFAIK没有轻量级的解决方案。一种可能的破解方法是编写一个C扩展插件,插入GC并检查某个实例变量是否已更改。

也许,您可以从阅读上述
ActiveModel::Dirty
的源代码中获得一些想法。此外,解决方案可以是轻量级的,也可以是全面的。如果这两种方法都可以实现,ActiveModel::Dirty会这样做。GC?它不跟踪变化,是吗?不,它不跟踪变化,我想。