初心者レベルの質問です。
私は 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)