列出关联模型的名称

时间:2011-04-20 15:47:27

标签: ruby-on-rails ruby ruby-on-rails-3

class Article < ActiveRecord::Base
  has_many :comments
  belongs_to :category
end

是否有文章的类方法可以检索关联列表?我知道通过查看模型的代码,文章与评论和类别相关联。但有没有一种方法可以通过编程方式获得这些关联?

1 个答案:

答案 0 :(得分:61)

您需要ActiveRecord::Reflection::ClassMethods#reflect_on_all_associations

所以它会是:

 Article.reflect_on_all_associations

您可以传入一个可选参数来缩小搜索范围,因此:

 Article.reflect_on_all_associations(:has_many)

 Article.reflect_on_all_associations(:belongs_to)

请记住,如果您想要模型的所有名称列表,您可以执行以下操作:

Article.reflect_on_all_associations(:belongs_to).map(&:name)

这将返回属于Article的所有型号名称的列表。

相关问题