如何管理与Rails的n:n关系?

时间:2009-09-29 23:29:13

标签: ruby-on-rails relationship has-and-belongs-to-many

假设我有一个Company,其Employees多个EmployeeCompanies可以有多个class Employee < ActiveRecord::Base has_and_belongs_to_many :companies end

基本上我会:

class Company < ActiveRecord::Base
  has_and_belongs_to_many :employees
end

{{1}}

但后来我对如何得到这样的东西感到困惑:

  • 公司名称以“John”开头的所有员工
  • 公司的所有员工首先按名称订购,然后发送电子邮件至第二位。

有一些我不知道的魔法吗?这个例子就是这里的演示,如果有助于你更好地解释,可以随意做出假设或改变它。

1 个答案:

答案 0 :(得分: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的美丽=)

希望它有所帮助!