我正在使用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
这是关联这些模型的“正确”方法吗?
答案 0 :(得分:0)
我认为你最后的回答可以解释为什么你在努力寻找一种正确的方法来关联这些模型。
您似乎只将您的部门视为join_table,这可能是由于您没有完全理解has_many =&gt; :通过构造,它实际上允许你的部门成为一个具有许多属性和方法的正确模型,因此也是一个“描述”属性。
创建单独的DepartmentDescription模型实际上是浪费资源。 Chad Fowler有一些很好的例子:has_many =&gt;通过他的Rails Recipes中的嵌套资源......所以检查一下。