Scope provides elegant way to write commonly used query fragments and improve readability of your code. Scope returns a new collection Collection or taint the current Collection.
Scope can be easily chained and you can pass argument to them too:
User.with_admin_privileges(4).active
Scope live both in Model::Collection and Model code space, meaning you may ignore Model.query to start a new Collection but instead go straight to Model.scope.