ActiveRecord::Reflection active_record read-only method

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/Reflection/MacroReflection#active_record-instance_method

Well, that’s not too informative…

thanks for response

On Tuesday, July 31, 2012 2:09:41 AM UTC+1, John M. wrote:

What’s your question (and what the relationship with your subject line?) ?

Fred

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 C. [email protected]

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs