0

I am working in Ruby on Rails 3. And trying to map out three models which mimic the data of a Company its employees and their respective departments.

In arrived at the following solution:

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

Is this the 'correct' way to associate these models?

4

1 に答える 1

0

あなたの最後の回答は、これらのモデルを関連付ける正しい方法を見つけるのに苦労している理由を説明していると思います.

Department を単に join_table と見なしているようですが、それは has_many => :through の構造を完全には理解していないためであり、実際には Department を多くの属性を持つ適切なモデルにすることができます。その中のメソッド、したがって「説明」属性でもあります。

別の DepartmentDescription モデルを作成することは、実際にはリソースの無駄です。Chad Fowler は、Rails Recipes で :has_many => through とネストされたリソースの良い例をいくつか持っています...それをチェックしてください。

于 2013-01-23T10:55:48.170 に答える