Correct implementation of ActiveModel::Dirty