環境:2.3.8
railsでは、primaryキーはデフォルトidを使いますが、仕様上、別の項目をprimaryにしたいときがあります。
その場合のmodelの設定例です。
[Acceptテーブル] (1対多) [Patientテーブル] という関連で、
現在、patient.idで関連付けられていたものを、patient.patient_noに変えます。
あらかじめ、両テーブルに項目patient_noは追加されているものとします。
また、Acceptテーブルから、Patientテーブルを取る場合のみを想定しています。
class Accept < ActiveRecord::Base
# Patientテーブルへ、patient_noをキーにリレーションを設定する
belongs_to :patient, :foreign_key => 'patient_no'
end
class Patient < ActiveRecord::Base
# Patientテーブルの主キーはpatient_noとする
set_primary_key :patient_no
end
※PatientテーブルからAcceptテーブルを取りたい時は、has_manyの指定が必要です。
このあと、動作がおかしくて悩んでいた所、controllerで、Patient.find(@accept.patient_id)などと記述している事に気づかず、1時間ちょっとハマってました><;
0 件のコメント:
コメントを投稿