我目前有这样的事情:

class Article

  # fields = [flag, something]

  after_create :update_flag

  def update_flag
    self.flag = 1 if something_changed?
  end
end

但是当我更改某些字段时,它不会更改“标志”字段。我已经保存了对象。仍然没有变化。
a = Article.create(flag: 0, something: "content")
a.something = "different"
a.save

a.flag
> 0

有任何想法吗?

最佳答案

改变

after_create


after_update

在您的代码示例中,您正在更新对象,这就是您需要不同 Hook 的原因。请参阅 docs 了解更多信息。

关于ruby-on-rails-3 - 如何正确 Hook 到 Rails 模型中的 after_create,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11483031/

10-15 10:50