2010-07-05 180 views
2

如何獲取模型的所有關係。 IE瀏覽器,我有User型號:模型的關係

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

那麼,怎樣才能知道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對象的數組。它們也支持其他方法,用於查詢每個關聯和其他有用內容的選項散列。