0

假设我有一个Company,有很多Employees,每个都Employee可以有很多Companies

基本上我会有:

class Employee < ActiveRecord::Base
  has_and_belongs_to_many :companies
end

class Company < ActiveRecord::Base
  has_and_belongs_to_many :employees
end

但是后来我对如何获得以下内容感到困惑:

  • 名称以“John”开头的公司的所有员工
  • 一家公司的所有员工首先按姓名排序,然后按电子邮件排序。

有什么我不知道的魔法吗?该示例仅用于演示,如果它可以帮助您更好地解释,请随意做出假设或更改它。

4

1 回答 1

4

为了让所有员工都以“John”开头,你可以这样做(当然还有很多其他方法可以做到,但无论如何):

some_company.employees.find(:all, :conditions => "name LIKE 'John%'")

对于员工的订购,它甚至更漂亮:

class Company < ActiveRecord::Base
  has_and_belongs_to_many :employees, :order => "name, email"
end

您可以使用 ActiveRecord 做更多的事情。我建议您尝试阅读http://guides.rubyonrails.org/或观看http://railscasts.com/以了解有关 RoR 之美的更多信息 =)

希望能帮助到你!

于 2009-09-30T01:09:59.023 回答