Relationship and reflection


#1

Hello,

I have a question.
I would like to know if there is a way with the reflection and
respond_to? to know if there is a relationship between tables.

When I say that I mean if inside a model there is a Has_many or
belongs_to declaration. Because I try to get this information
dynamically, during the execution of a script.

If someone has an idea even if it’s not with the reflection, because
this way seemed for me a good one but maybe I’m wrong, and another can
do it.

Thanks for your help.


#2

Guillaume wrote:

I would like to know if there is a way with the reflection and
respond_to? to know if there is a relationship between tables.

When I say that I mean if inside a model there is a Has_many or
belongs_to declaration. Because I try to get this information
dynamically, during the execution of a script.

If someone has an idea even if it’s not with the reflection, because
this way seemed for me a good one but maybe I’m wrong, and another can
do it.

If you want to find associations from Person to Car, try this:

Person.reflect_on_all_associations.select { |r| r.klass == Car }


Josh S.
http://blog.hasmanythrough.com


#3

Josh S. wrote:

Guillaume wrote:

I would like to know if there is a way with the reflection and
respond_to? to know if there is a relationship between tables.

When I say that I mean if inside a model there is a Has_many or
belongs_to declaration. Because I try to get this information
dynamically, during the execution of a script.

If someone has an idea even if it’s not with the reflection, because
this way seemed for me a good one but maybe I’m wrong, and another can
do it.

If you want to find associations from Person to Car, try this:

Person.reflect_on_all_associations.select { |r| r.klass == Car }


Josh S.
http://blog.hasmanythrough.com

That’s works very well.
Thanks a lot for your quick help, that’s really helped me, I’m so happy.

Thank you very much again.


#4

Hello,

I’m using a code similar to the previous one, slightly modified, like
that:

Person.reflect_on_all_associations.select { |r| @person.r.name.save }
where r.name = cars

When I’m using that code I expect ruby to interpret
@person.r.name.save to @person.cars.save, but it doesn’t.

I even tried @person.#{r.name}.save, but with that ‘#’ all my code fall
apart. I even try to concatenate with ‘+’ but nothing worka.

I don’t know how to make Ruby understand that I want to use the value
inside r.name.

If someone has an idea, please I need your help.

Thank you very much.