我有一个简单的User
模型,其中一个Address
和一个UserObserver
。我想运行一些逻辑来响应任一模型的变化。为此,我有:
def before_save(user)
if user.changes['email'] || user.try(:address).try(:changes).present?
# run custom code
end
end
当我在开发中运行此代码时,它可以工作。当我使用RAILS_ENV=staging
运行时,地址更改不会显示。
u = User.where(email: 'foo@bar.com').first
u.address.postal_code = '44144'
u.save! # address changes appear in observer callback in development only