Forum: Ruby on Rails ActiveRecord::Reflection active_record read-only method

Posted by John Merlino (johnmerlino)
on 2012-07-31 03:11
(Received via mailing list)
I was horsing around with the reflect_on_assocation class method of
ActiveRecord Reflection, which returns an instance of
AssociationReflection. One of its methods is called active_record. I
run it in console:

Account.reflect_on_association(:users).active_record
 => Account(id: integer, name: string, created_at: datetime,
updated_at: datetime, ancestry: string, street_address: string, city:
string, postal_code: string, state: string, country: string,
street_address2: string, account_type_id: integer, client_logo:
string, subdomain: string, email: string, phone: string)

What it returns is not the Account object.

According to documentation, it "Returns the value of attribute
active_record".


http://rubydoc.info/docs/rails/3.0.0/ActiveRecord/...


Well, that's not too informative...

thanks for response
Posted by Frederick Cheung (Guest)
on 2012-07-31 11:43
(Received via mailing list)
On Tuesday, July 31, 2012 2:09:41 AM UTC+1, John Merlino wrote:
>
>
> What's your question (and what the relationship with  your subject line?) ?

Fred
Posted by John Merlino (johnmerlino)
on 2012-08-01 02:21
(Received via mailing list)
I'm saying that active_record called on AssociationReflection seems to
just return the class object itself. For example:

Account.reflect_on_association(:users).active_record # => Account

What's the point of that? Can't you just do Account.class?

On Jul 31, 5:42am, Frederick Cheung <frederick.che...@gmail.com>
Posted by Ace S. (ace_s)
on 2012-08-01 13:55
(Received via mailing list)
I think, #reflect_on_association is a class method. So it tells you if 
the
class has some association and the stuff related to that.

Account.reflect_on_association(:users) will give you some information 
about
how the attribute :users is associated with the model Account. Probably, 
a
has_many association, I guess.

Now, in most cases, it goes like this:

Account.reflect_on_association(:users).active_record => User

But in your case, the model Account seems to be associated with itself
through :users. It would be really helpful if you post your models here.

So, to answer your question: Can't you just do Account.class?
Well, in this special case you could, but in most other cases, not.

Hope this helps.

Ace
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.