关联回调路由

时间:2016-05-09 14:59:43

标签: ruby-on-rails-4 callback has-many

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

1 个答案:

答案 0 :(得分:1)

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

class User
  has_many :user_ratings
end

我定义了

has_many :user_ratings, after_add :do_something

仅当我按照对象创建路径

时才会触发此操作
user.user_ratings.create()

但如果我只是尝试一下,

UserRating.create

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