简体   繁体   中英

Rails3 - How do I get all attributes and associations of an ActiveRecord Model?

I was looking for a method to get an array of all model attributes and associations on an ActiveRecord model. I had a hard time finding the answer to this question, so, I will post my answer and see if there is a better solution.

To get all attributes

m = Model.new
m.attributes

To get all Model associations

Model.reflect_on_all_associations.map{|x| x.class_name}.compact

These links will provide more details How do you discover model attributes in Rails

http://www.funonrails.com/2009/11/how-to-get-all-associted-models-of.html

My solution is:

m = Model.find(id)
m.attributes.keys.concat(m.reflections.map{|r| r.first.to_s})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM