私は苦労している協会を持っています。私はDepartmentモデルを持っており、その中にはマネージャーを含む多くのスタッフがいる可能性があります。
電話できるようにする必要があります。
Department.staff-そしてマネージャーを含むすべてのスタッフのコレクションを取得します。Department.manager-そしてマネージャーを取得します。
User.department-そして、ユーザーがスタッフであるかマネージャーであるかにかかわらず、ユーザー部門を取得します。User.is_manager-そして、彼らが部門を管理しているかどうかについてブール値を取得します。User.manages-管理する部門を取得します。
この関連付けを設定するのに最適なものは何ですか?私は現在、次のようなものから始めました。
class User < ActiveRecord::Base
belongs_to :department
has_one :manages, :class_name => 'Department', :foreign_key => :manager_id
end
class Department < ActiveRecord::Base
belongs_to :manager, :class_name => "User"
has_many :staff, :class_name 'Users'
end
私がこれに関して抱えている問題は、マネージャーをマネージャーとしてもスタッフのメンバーとしても追加しなければならないということです。これは少し不器用に感じますが、おそらく私はうるさいですか?
誰かがいくつかのより良いオプションを提案できますか?