2010-07-05 4 views
2

Comment puis-je obtenir toutes les relations pour le modèle. IE, j'ai modèle User:Relations du modèle

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

Alors, comment puis-je savoir quelles relations User modèle a obtenu? Et foreign_keys s'ils sont présentés.

Répondre

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

Sorties:

has_many messages 
has_many posts 
belongs_to role 

Procédé reflect_on_all_associations retourner un tableau de MacroReflection objets. Ils supportent également d'autres méthodes, pour interroger les hash d'options de chaque association et d'autres choses utiles.

Questions connexes