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