0

編集:私はMongoidを使用しているので、連鎖もhas_many through:

プロジェクト管理用のバックエンドを開発しており、「深く」関連するモデルがあります

class Project
  include Mongoid::Document
  has_many :steps
  scope :active, ...

class Step
  has_many :assignments

class Assignment
  belongs_to :contractor, inverse_of: :project_assignment
  belongs_to :step

class Contractor
  belongs_to :user, inverse_of: :contractor_profile
  has_many :project_assignments, class_name: 'Assignment'

class User
  has_one :contractor_profile, class_name: 'Contractor'

これで、ユーザー用のサイドバーをコーディングしました。このサイドバーに、ユーザーが請負業者のプロファイルを持っている場合、アクティブなプロジェクトの数を表示したい

この情報へのアクセスを実装する最良の方法は何ですか?

一度に最大 30 件のアクティブなプロジェクト、プロジェクトごとに 1 ~ 6 件の割り当て (ただし、同じ請負業者との多くのステップ) について話しているため、請負業者は通常、合計でいくつかのプロジェクト (アクティブであるかどうかに関係なく) を持っています。

私のアイデア:

  • 割り当てを見てくださいcurrent_contractor- >ステップ - >プロジェクト - >アクティブなものを数えます
  • 進行中のプロジェクトを見る -> 割り当て -> 一致する請負業者を探すcurrent_contractor
  • 請負業者 - >割り当て - >プロジェクト&カウントにジャンプできるように、すべての割り当てにbelong_to :project(どうすればそれが同じであることを確認できますか?)を追加するかもしれませんself.step.project
4

1 に答える 1