2010-07-05 3 views
2

모델에 대한 모든 관계를 어떻게 얻을 수 있습니까?모델의 관계

class User < AR::Base 
    has_many :messages, :foreign_key => 'author' 
    has_many :posts 
    belongs_to :role 
end 

그래서 어떻게 User 모델이 가지고있는 관계를 알 수 : IE, 나는 User 모델있어? 그리고 foreign_keys가 제시되면.

답변

7
User.reflect_on_all_associations.each do |assoc| 
    puts "#{assoc.macro} #{assoc.name}" 
end 

출력 :

has_many messages 
has_many posts 
belongs_to role 

reflect_on_all_associations 방법 MacroReflection 오브젝트의 배열을 반환한다. 그들은 각 협회의 옵션 해시와 다른 유용한 것들을 질의하기 위해 다른 방법도 지원합니다.