私のレールアプリケーションには2つのモデルがあります
Class Employee
belongs_to :cost_center
End
Class CostCenter
has_many :employees
End
現在、従業員はコスト センター所有者として多くのコスト センターを持つことができます。この関連付けをレールで定義するにはどうすればよいですか?
私のレールアプリケーションには2つのモデルがあります
Class Employee
belongs_to :cost_center
End
Class CostCenter
has_many :employees
End
現在、従業員はコスト センター所有者として多くのコスト センターを持つことができます。この関連付けをレールで定義するにはどうすればよいですか?
正しい列が必要ですが、それ以外は簡単です。
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
完全を期すために、すべての関連付けに追加する必要があります。
循環参照は避けたいと思います。従業員が原価センタに属している場合、所有者も原価センタに属している必要があります。
所有と雇用を本当に区別する必要がある場合は、従業員は所有者とは異なるエンティティであるため、2つのモデルを作成することを検討します。
class Owner
belongs_to :cost_center
end
class CostCenter
has_many employees
has_one owner
end