1

私のレールアプリケーションには2つのモデルがあります

    Class Employee 
      belongs_to :cost_center
    End

    Class CostCenter
      has_many :employees
    End

現在、従業員はコスト センター所有者として多くのコスト センターを持つことができます。この関連付けをレールで定義するにはどうすればよいですか?

4

2 に答える 2

1

正しい列が必要ですが、それ以外は簡単です。

class Employee
  has_many :owned_cost_centers, :class_name => "CostCenter", :foreign_key => :owner_id
  belongs_to :cost_center
end

class CostCenter
  belongs_to :owner, :class_name => "Employee", :foreign_key => :owner_id
  has_many :employees
end

:inverse_of完全を期すために、すべての関連付けに追加する必要があります。

于 2012-10-03T07:54:52.450 に答える
0

循環参照は避けたいと思います。従業員が原価センタに属している場合、所有者も原価センタに属している必要があります。

所有と雇用を本当に区別する必要がある場合は、従業員は所有者とは異なるエンティティであるため、2つのモデルを作成することを検討します。

class Owner
  belongs_to :cost_center
end

class CostCenter
  has_many employees
  has_one owner
end
于 2012-10-03T07:39:23.103 に答える