With this implementation, two models can only be equal if they have been saved. I think that's not a valid assumption :wink: I suggest using equalizer. It's a super thin gem. We can add all defined attributes to the equalizer, including key and rev. Then we get == for free (and also a nice .inspect)