Допустим, мне нужны простые модели First
и Second
, и существует отношение один к одному из Second
с использованием belongs_to :first
.Теперь я хочу сделать что-то с Second
, когда First
сохранено.Но я не хочу настраивать обратный вызов after_save
в First
, чтобы иметь дело с Second
.
Я хочу, чтобы мои модели были чистыми и максимально не знали друг о друге.Я всегда следую передовым методам инкапсуляции объектов, и это всегда делает мою жизнь проще.
Естественно, поскольку after_save
является методом класса, я попытался настроить этот обратный вызов в Second
, например:это:
class Second < ActiveRecord::Base
belongs_to :first
First.after_save do |record|
if that = Second.find_by_first_id(record.id)
# grow magic mushrooms here...
end
end
end
, но это не работает, этот обратный вызов никогда не выполняется и не возникает ошибка.