Forum: Ruby on Rails ActiveRecord::Base.default_scopes?

Posted by Agis A. (agis_a)
on 2013-03-11 08:31
(Received via mailing list)
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?
Posted by Colin Law (Guest)
on 2013-03-11 11:15
(Received via mailing list)
On 11 March 2013 07:30, powi <corestudiosinc@gmail.com> 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
Posted by Agis A. (agis_a)
on 2013-03-11 22:28
(Received via mailing list)
It's not documented since it's dynamically defined.
Posted by Colin Law (Guest)
on 2013-03-11 22:50
(Received via mailing list)
On 11 March 2013 21:26, powi <corestudiosinc@gmail.com> 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
Posted by Agis A. (agis_a)
on 2013-03-12 17:40
(Received via mailing list)
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)
Posted by Colin Law (Guest)
on 2013-03-12 17:52
(Received via mailing list)
On 12 March 2013 16:39, powi <corestudiosinc@gmail.com> 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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.