Ruby on rails Rails活动记录多个连接

Ruby on rails Rails活动记录多个连接,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,是否有任何方法可以通过使用ActiveRecord查询语法获得此SQL查询 select t1.* from t1 join t2 on t1.id = t2.t1_id join t3 on t2.id = t3.t2_id join t4 on t3.id = t4.t3_id join t5 on t4.id = t5.t4_id where t5.id = 5; 首先,我将阅读以下内容:创建表,表的名称以某种方式表示您正在使用的数据。创建具有适当关联的迁移模型类,然

是否有任何方法可以通过使用ActiveRecord查询语法获得此SQL查询

select t1.*
from
  t1
  join t2 on t1.id = t2.t1_id
  join t3 on t2.id = t3.t2_id
  join t4 on t3.id = t4.t3_id
  join t5 on t4.id = t5.t4_id
where t5.id = 5;

首先,我将阅读以下内容:创建表,表的名称以某种方式表示您正在使用的数据。创建具有适当关联的迁移模型类,然后返回并更新您的问题。

您的查询的问题是,您基于名为的数据库表,而不是按照Rails具有多个表名的约定。我可以提供一个与您类似的示例,如下所示:

Universe.joins(
  galaxies: {
    stars: {
      planets: {
          molecules: :atoms
      }
    }
  }
).where(atoms: {id: 5})
此查询假设您有以下模型:

  • 宇宙
    有许多星系
  • 星系
    有许多:恒星并且
    属于:宇宙
    (因此,有
    宇宙id
  • 恒星
    有许多:行星并且
    属于:星系
  • 行星
    有很多:分子并且属于:恒星
  • 分子
    有许多原子并且属于行星
  • Atom
    。。。只是
    属于:分子
应该会有帮助。