module ActiveRecord::Core

def ==(comparison_object)

models are still comparable.
Note also that destroying a record preserves its ID in the model instance, so deleted

+select+ and leave the ID out, you're on your own, this predicate will return false.
other record is the receiver itself. Besides, if you fetch existing records with
Note that new records are different from any other record by definition, unless the

is of the same type and +self+ has an ID and it is equal to +comparison_object.id+.
Returns true if +comparison_object+ is the same exact object, or +comparison_object+
def ==(comparison_object)
  super ||
    comparison_object.instance_of?(self.class) &&
    !id.nil? &&
    comparison_object.id == id
end