ActiveRecord::Base.default_scopes?

ActiveRecord models has a weird behavior.

class Post < ActiveRecord::Base
end

% Post.default_scopes? # => true

This happens because Post.default_scopes returns an empty array and
.default_scopes? calls !![] which is true. But this can be confusing,
don’t
you think?

On 11 March 2013 07:30, powi [email protected] wrote:

ActiveRecord models has a weird behavior.

class Post < ActiveRecord::Base
end

% Post.default_scopes? # => true

This happens because Post.default_scopes returns an empty array and
.default_scopes? calls !![] which is true. But this can be confusing, don’t
you think?

I can’t seem to find the docs for default_scopes? Can you point me to
it?

Colin

It’s not documented since it’s dynamically defined.

On 11 March 2013 21:26, powi [email protected] wrote:

It’s not documented since it’s dynamically defined.

Many dynamically defined methods are documented in various places (in
the Rails Guides for example).
If it is not documented how am I supposed to know how what it does?

Colin

I’m sorry but I didn’t wrote these methods.

However, you can still understand what it does by:

  1. using it in the rails console
  2. reading the source
  3. reading its name (in this particular occasion, it’s very obvious)

On 12 March 2013 16:39, powi [email protected] wrote:

I’m sorry but I didn’t wrote these methods.

However, you can still understand what it does by:

using it in the rails console
reading the source
reading its name (in this particular occasion, it’s very obvious)

Generally I assume that if a method is not documented anywhere then it
is probably not intended to be used by lesser mortals, and may be
liable to change without warning, and therefore I do not care what the
interface is. Perhaps that is not be a reasonable stance to take
however.

Colin