列出相关模型的名称

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

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

你想要ActiveRecord :: Reflection :: ClassMethods#reflect_on_all_associations

所以这将是:

  Article.reflect_on_all_associations 

你可以传入一个可选的参数来缩小search范围,所以:

  Article.reflect_on_all_associations(:has_many) Article.reflect_on_all_associations(:belongs_to) 

请记住,如果你想要的模型的所有名称的列表,你可以做这样的事情:

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

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