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

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

推荐答案

你想要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的所有模型名称的列表.

Ruby-on-rails相关问答推荐

在has_many关系中由两个条件 Select

Rails 7.1,登录到STDOUT和LOG/Production.log

Rails/Rspec中的测试文章创建

Ruby on Rails/Activerecord 排序自引用查询?

Rails:关于yields

Rails Migration将字符串转换为整数?

rails s和bundle exec rails s有什么区别?

Ruby on Rails 取消首字母大写

耙路由错误缺少:路由定义上的操作键

RSpec > 有没有办法用一个命令运行所有测试?

Rails(或 Ruby):Yes/No 而不是 True/False

Rails 助手应该假设实例变量存在还是应该将它们作为参数接收?

升级到设计 3.1 => 获取重置密码令牌无效

对象不支持此属性或方法 Rails Windows 64bit

如何测试自定义验证器?

在 rails 3 中批量插入

如何在 Rails 应用程序中测试 ElasticSearch (Rspec)

让 bundler 为不同的平台使用不同的 gem

从模型中获取验证

ArgumentError:ApplicationController 的副本已从模块树中删除,但仍处于活动状态