公司,员工和部门之间的模型关联

时间:2012-12-26 13:48:33

标签: ruby-on-rails associations has-many-through

我正在使用Ruby on Rails 3.并尝试绘制三个模拟公司数据的员工及其各自部门的模型。

得出以下解决方案:

class Company < ActiveRecord::Base
  has_many :departments
  has_many :employees, through => :departments
end

class Department < ActiveRecord::Base
  belongs_to :company
  has_many :employees
  has_one :department_description
end

class DepartmentDescription < ActiveRecord::Base
  belongs_to :department
end

class Employee < ActiveRecord::Base
  belongs_to :department
end

这是关联这些模型的“正确”方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你最后的回答可以解释为什么你在努力寻找一种正确的方法来关联这些模型。

您似乎只将您的部门视为join_table,这可能是由于您没有完全理解has_many =&gt; :通过构造,它实际上允许你的部门成为一个具有许多属性和方法的正确模型,因此也是一个“描述”属性。

创建单独的DepartmentDescription模型实际上是浪费资源。 Chad Fowler有一些很好的例子:has_many =&gt;通过他的Rails Recipes中的嵌套资源......所以检查一下。