gpt4 book ai didi

sql - Rails 3,选择 has_many(左连接)

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:13 25 4
gpt4 key购买 nike

models/host.rb

class Host < ActiveRecord::Base
has_many :report, :dependent => :delete_all
end

models/report.rb

class Report < ActiveRecord::Base
belongs_to :host
end

现在我想选择所有有报告的主持人,包括没有任何报告的主持人。

我试图通过

list=Host.all(:joins => "left join `reports` on reports.host_id=host.id")

但 Rails 似乎只从 hosts 表中选择字段。所以我无法使用 list[0].report 访问报告对象。此外,我更愿意在不使用原始 SQL 命令的情况下以更像 ruby​​ 的方式进行选择。

如何在不使用 SQL 的情况下通过一次选择同时获取主机和报告?

最佳答案

你可以做到

Host.eager_load(:reports)

这将加入报告表并实例化所有报告对象。您可以像按需加载一样使用加载的主机和报告

关于sql - Rails 3,选择 has_many(左连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com