ruby-on-rails - 在 Rails 中更新没有回调的序列化属性

标签 ruby-on-rails ruby ruby-on-rails-3

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

出于各种原因(副作用、无限循环),我不想触发任何回调。实现此目的的典型方法是使用 update_column,但不幸的是,这不适用于序列化属性。

我知道我可以在我的回调上放置条件以避免它们再次被调用,但我觉得应该有一种不触发回调但仍适用于序列化属性的 update_attribute 形式。

有什么建议吗?

最佳答案

我就是这样

serialize :properties, Hash

def update_property(name, value)
  self.properties[name] = value
  update_column(:properties, properties)
end

关于ruby-on-rails - 在 Rails 中更新没有回调的序列化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809278/

相关文章:

ruby-on-rails - Rails 迁移中的临时索引名称太长

ruby-on-rails - 在Rails的文本框中格式化DateTime

ruby - ZeroMQ 安全地通过互联网

ruby-on-rails-3 - Rails Article.find 1 在遗留数据库上引发 ActiveRecord::StatementInvalid

ruby-on-rails - Capistrano Deploy 未从 GitHub 获取最新提交

javascript - 在部分渲染上执行 JavaScript

ruby-on-rails - 错误//未初始化常量 Sass::Rails::Application (NameError)]//运行时 'rails server'

ruby - Rbenv/Pow - Bundler::RubyVersionMismatch(启动应用程序时出错)

mysql - 在 Rails 中用数字和文本对字符串进行排序

ruby-on-rails - 使用 Thinking Sphinx 进行多索引全局搜索