如何获得模型的所有关系。 IE,我有User
型号:
class User < AR::Base
has_many :messages, :foreign_key => 'author'
has_many :posts
belongs_to :role
end
那我怎么知道User
模型有哪些关系呢?和foreign_keys如果出现。
答案 0 :(得分: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个对象的数组。它们也支持其他方法,用于查询每个关联的选项哈希和其他有用的东西。