查找模型上定义的所有:has_many关系

时间:2012-02-12 01:24:26

标签: ruby-on-rails model has-many

我有一个模型User在user.rb中定义了许多关系,比如

has_many :posts, :dependent => :destroy
has_many :comments, :dependent => :destroy
... and others

如何以编程方式查找所有此类关系?这是我希望能够通过Rails找到所有子模型,如Post,Comment等,而不必手动查看user.rb文件。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您想要做的事情被称为“反思” - 您的软件会在运行时,在运行中发现更多关于自身的信息。

在Rails中,ActiveRecord支持此功能。请参阅Reflection方法。

根据文档

添加,您需要调用

associations = User.reflect_on_all_associations(:has_many)

您将获得一系列对象,这些对象将为您提供有关User类的所有has_many关联的信息。