sql - ActiveRecord 查找子资源的所有子资源

标签 sql ruby-on-rails ruby activerecord

我有 Project has_many :locationsLocations has_many :comments,以及 Project has_many :plansPlan has_many :comments。如何选择属于一个项目的所有可评论资源的所有评论?如果相关的话,我正在使用 ActiveAdminActiveAdmin::Comment。我试过的:

p = Project.first
comments = p.locations.map(&:comments).flatten + p.plans.map(&:comments).flatten

但是是否有 ActiveRecord 或 Rails 方法可以做到这一点?或者是否有可以完成所有这些的 SQL 连接?谢谢!

最佳答案

如果你通过位置和相同的计划进行 has_many location_comments 会更好。您也可以制作如下模型方法:

def all_comment
   self.location_comments + self. plans_comments
end

关于sql - ActiveRecord 查找子资源的所有子资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20053808/

相关文章:

ruby-on-rails - 我如何在我的 Gemfile 中找出依赖于 termios 的 gem?

java - 将列和值的 HashMap 存储到 SQL 数据库以获取用户 ID

mysql - 使用多个字段的外键约束

ruby-on-rails - 路由文件中的 "map.resource"到底是做什么的?

ruby - Ruby 中的动态继承

ruby-on-rails - 在 Ruby 中打开并读取 Google Drive 中的文件

java - 如果我想了解编译器和编程语言是如何制作的,从哪里开始

mysql - Sql:使用表的列值作为存储过程的参数

sql - PostgreSQL 对 string\varchar 的各种清理

ruby-on-rails - Rails 6 rake Assets :precompile failing with Docker on AWS due to missing Master Key Env variable