rather than use a callback, [you can override :create_or_update to give you better control over how the record is persisted](https://gist.github.com/bf4/5594532#file-callbacks-rb-L13)

    def create_or_update
      ensure_value
      super
    end