2016-05-09 5 views
1

Я понимаю концепцию нормальных обратных вызовов и обратных вызовов ассоциаций, то есть когда их использовать. Я озадачен тем, каковы возможные причины предпочесть нормальные для обратных вызовов ассоциации? Мне недавно была представлена ​​ситуация, когда мне нужно идти с первым, я хочу знать, почему. Существуют ли проблемы с производительностью при обратных вызовах с ассоциацией? Я использовал after_add в отношениях has_many, к которому теперь я буду использовать after_update. Благодарю.Ассоциация Callback Rails

+0

Я нашел [эту ссылку] (http://vaidehijoshi.github.io/blog/2015/12/01/functions-to-call-upon-activerecord-association-callbacks/), которая может быть полезна – hypern

+0

@hypern Может быть, немного. Но точно не отвечает на мои сомнения. В любом случае спасибо :) – Niyanta

ответ

0

Я выяснил причину. Когда вы определяете действие через обратные вызовы Ассоциации, они запускаются только при изменении объекта с помощью них. Для бывшего, если у меня есть 2 модели, пользователи и UserRating, с отношениями, как,

class User 
    has_many :user_ratings 
end 

и я определил

has_many :user_ratings, after_add :do_something 

Это будет срабатывать только если идти по пути создания объекта,

user.user_ratings.create() 

Но если я просто попробовать,

UserRating.create 

обратный вызов не будет запущен. То же самое касается других обратных вызовов ассоциации.