Ruby on Rails Wednesday, August 1, 2012

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


On Monday, July 30, 2012 9:09:41 PM UTC-4, John Merlino wrote:

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

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/YA_XUXDCgM0J.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment