协会回调 Rails

Association Callback Rails

我了解正常回调和关联回调的概念,即何时使用哪个。我感到困惑的是,与关联回调相比更喜欢普通回调的可能原因是什么?我最近遇到了一种情况,我必须选择前者,我想知道为什么。关联回调是否存在任何性能问题?我在 has_many 关系中使用 after_add,现在我将使用 after_update。谢谢。

我找到原因了。当您通过关联回调定义操作时,它们仅在使用它们修改对象时触发。 例如,如果我有 2 个模型,User 和 UserRating,它们之间的关系类似于

class User
  has_many :user_ratings
end

我已经定义了

has_many :user_ratings, after_add :do_something

这只会在我遵循对象创建路径时触发,

user.user_ratings.create()

但如果我只是尝试一个,

UserRating.create

不会触发回调。其他关联回调也是如此。