What is the actual use of ActiveRecord::SpawnMethods#except ?

I really don't understand the actual usecase of the *except* method
http://api.rubyonrails.org/classes/ActiveRecord/SpawnMethods.html#method-i-except

If I don't want a condition to apply in my _query_, then why should I add it?
After adding a condition, what is the point of removing it again. This how the
doco http://api.rubyonrails.org/classes/ActiveRecord/SpawnMethods.html#method-i-except is saying.

except is used when you want to use part of a relation but not necessarily the whole thing. It’s not always useful in application code, but when dealing with generic relations it can be really useful:

https://github.com/rails/rails/blob/44b7d6c41610bb8ddd058b3815543985f65bf7ad/activerecord/lib/active_record/relation/finder_methods.rb#L296

Here, except is used to remove parts of the relation that exists? doesn’t want to use.

–Matt Jones

`except` is used when you want to use part of a relation but not
necessarily the whole thing. It's not always useful in application code,
but when dealing with generic relations it can be really useful:

https://github.com/rails/rails/blob/44b7d6c41610bb8ddd058b3815543985f65bf7ad
/activerecord/lib/active_record/relation/finder_methods.rb#L296

Here, `except` is used to remove parts of the relation that `exists?`
doesn't want to use.

--Matt Jones

Very useful example. Does it mean, we can use it also *scope* or on *default
scope* ? Will it be a good choice although to use scope relation if it fits any
query, with some tailoring using *except* ?

Yep. There are also some related methods; rewhere, reorder, and unscope. They allow somewhat finer control than except.

–Matt Jones