0

初心者レベルの質問です。

私は 2 つのモデルを持っています: テーブル チャートを介して結合された患者とプロバイダーです。

「has_and_belongs_to_many」ではなく「has_many :through」という関連付けを使用しました。これは、「has_and_belongs_to_many」シナリオでは実行できないことを理解している [patient_mrn] と呼ばれる Chart テーブルに別の列を追加する必要があるためです。

患者モデルには次のものがあります。

    has_many :charts
    has_many :providers, :through => :charts

Provider モデルには次のものがあります。

  has_many :charts
  has_many :patients, :through => :charts

チャートモデルには次のものがあります。

    belongs_to :patient
    belongs_to :provider

次の条件を持つすべての患者を取得するために、Patient モデルで where メソッドを呼び出しようとしています。

- その患者の Chart join テーブルの provider_id は、指定された値 [@exam.provider_id] に等しく、

- その患者のグラフ結合テーブルの患者_mrn は、指定された値 [@exam.patient_mrn] と等しくなります。

これは私が試してみたものですが、明らかに機能していません。私はどこで迷うのですか?

@patient = Patient.where(:patient.chart[provider_id] => @exam.provider_id,
          :patient.chart[patient_mrn] => @exam.patient_mrn)
4

1 に答える 1