We all use ActiveRecord Reflection on the fly while programming, since we declare all the relations in the model and we are considering it as obvious.
i tried to search and see if there is a way to find those reflections and to alter it in runtime.
Model.reflections
i found this collection which contains all the information about the current model reflections.
for example.
- .macro: this will return the type of the current reflection (:has_many, etc..)
- .primary_key_name: the reflection primary key
- .options: the reflection SQL join options
- etc. etc.
for example, the following code will show me all the reflections for a model named Article:
- >> y Article.reflections.values.collect {|e| e.macro.to_s + " => " + e.primary_key_name.to_s }
- ---
- - has_many => taggee_id
- - belongs_to => layout_id
- - has_many => article_id
- - has_one => subject_id
- - belongs_to => user_id
- - has_many => taggee_id
- => nil
2 comments:
November 22, 2007 at 10:44 AM
Hi Elad,
I'm Rami from Israel.
Nice to see some more Israeli RoR programmers.
In which way ware you using the reflections?
Thanks!
November 22, 2007 at 12:07 PM
Hi rami,
i use the reflections every day and in any project, why not?
if you have anymore question, send me a mail
Post a Comment