0

我在 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

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

4

1 回答 1

0

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

似乎您将您的部门仅视为一个 join_table,这可能是由于您没有完全理解 has_many => :through 构造,并且它实际上允许您的部门成为具有许多属性的适当模型和其中的方法,因此也是一个“描述”属性。

创建单独的 DepartmentDescription 模型实际上是一种资源浪费。Chad Fowler 在他的 Rails 食谱中有几个很好的例子:has_many => through 和嵌套资源......所以检查一下。

于 2013-01-23T10:55:48.170 回答