this method seems identical to the same one in ActiveModel. wouldn't the AM one by inherited by AR without need to redefine?