型号/ host.rbRails 3中,选择的has_many(LEFT JOIN)
class Host < ActiveRecord::Base
has_many :report, :dependent => :delete_all
end
型号/ 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的情况下获得主机和报告?
非常感谢!这正是我正在寻找的。 – gorootde 2012-01-07 17:11:25