3
複数の自己参照モデルを使用するコードを作成しています。結合テーブルを使用して関連付けるときに一致させることができます。複数の自己参照has_many:Rails 4の関連付け。
モデルは
User.rbのようになります。
class User < ActiveRecord::Base
has_many :appointments
has_many :students, through: :appointments
has_many :teachers, through: :appointments
end
Appointment.rb:
class Appointment < ActiveRecord::Base
belongs_to :student, class_name: User
belongs_to :teacher, class_name: User
end
残念ながら、レールによって生成されたクエリは次のとおりです。
SELECT "users".* FROM "users" INNER JOIN "appointments" ON "users"."id" = "appointments"."student_id" WHERE "appointments"."user_id" = $1
それはエラーを投げる、 Appointmentにはuser_idパラメータがないためです。
私はすでにforeign_key
オプションを指定しようとしましたが、これは何もしませんでした。私はこれをエレガントに解決できる他の方法はありますか?
ありがとうございました。
"... Railsで生成されたクエリ..." - どのような呼び出しですか?あなたはこの質問をするために何をしましたか?あなたは指定しませんでしたが、あなたが何をしようとしているかを一目で分かりやすくするでしょう。 – coreyward
私は 'User.first.students'を試しました。 – Alex
あなたは外部キーオプションを指定しようとしていますか? –