模型的关系

时间:2010-07-05 09:59:06

标签: ruby-on-rails ruby

如何获得模型的所有关系。 IE,我有User型号:

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

那我怎么知道User模型有哪些关系呢?和foreign_keys如果出现。

1 个答案:

答案 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个对象的数组。它们也支持其他方法,用于查询每个关联的选项哈希和其他有用的东西。