有什么方法可以通过使用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;
答案 0 :(得分:1)
您的查询的问题在于您基于具有多个表名的每个Rails约定名为而不是的数据库表。我可以提供一个类似于你的例子,它看起来像这样:
foldtree f g a (Node label subtrees) = f label (foldr (g . foldtree f g a) a subtrees)
此查询假设您有模型:
Universe.joins(
galaxies: {
stars: {
planets: {
molecules: :atoms
}
}
}
).where(atoms: {id: 5})
Universe
has_many :galaxies
Galaxy
和has_many :stars
(因此,有belongs_to :universe
)
universe_id
Star
和has_many :planets
belongs_to :galaxy
Planet
和has_many :molecules
belongs_to :star
Molecule
和has_many :atoms
belongs_to :planet
...只是Atom
答案 1 :(得分:0)
我首先阅读:http://guides.rubyonrails.org/association_basics.html并创建名称以某种方式表示您正在使用的数据的表格。使用正确的关联创建迁移模型类,然后返回并更新您的问题。