按关联的ROR查询顺序

时间:2010-07-21 18:47:51

标签: ruby-on-rails

我有几个铁轨关系。

class Customer < ActiveRecord::Base
 has_many :sites
end

class Site < ActiveRecord::Base
 belongs_to :Customer
end

我希望能够获得客户的长名称字段和网站的长名称字段所订购的网站列表,我想在页面的选择元素中使用该列表,其中个别选项将如下所示。

首先由客户订购,然后是该客户的网站订购。我不希望看到没有网站的客户。

  • 波尔州立大学 - 学生会大楼
  • 博伊西州立大学 - 行政管理
  • 博伊西州立大学 - 学生会大楼

我无法弄清楚如何构建我的Site.find语句。

2 个答案:

答案 0 :(得分:0)

我会选择这样的事情:

@sites = Site.find(:all, :joins => :customer, :order => "customers.long_name, sites.long_name")

然后,

@sites.each { |s| "#{s.customer.long_name} - #{s.long_name}" } 

答案 1 :(得分:0)

我用

Site.all(:include => :customer, :order => "customers.name, sites.name")