在Rails中更新没有回调的序列化属性

Mar*_*May 5 ruby ruby-on-rails ruby-on-rails-3

我正在尝试使用同一对象上的after_save回调中的某些数据更新序列化属性.

由于各种原因(副作用,无限循环),我不希望触发任何回调.实现这一目标的典型方法是使用update_column,但不幸的是,这不适用于序列化属性.

我知道我可以在我的回调上放置条件以避免再次调用它们,但是它感觉应该有一种update_attribute形式,它不会触发回调,但仍然可以使用序列化属性.

有什么建议?

axs*_*uul 1

这就是我所做的

serialize :properties, Hash

def update_property(name, value)
  self.properties[name] = value
  update_column(:properties, properties)
end
Run Code Online (Sandbox Code Playgroud)