1

だから私は2つのモデルを持っています:UserとScheduledSession

ユーザーには役割があります。その役割の一つが「インストラクター」です。

ScheduledSession
belongs_to :instructor, :class_name => 'User', :foreign_key => 'instructor_id'

User
has_many :scheduled_sessions

良い!だから私はこれを行うことができます...

s = ScheduledSession.first
s.instructor

悪い!しかし、私はこれを行うことはできません...

u = User.first
u.scheduled_sessions

このエラーが発生します...

SQLite3::SQLException: no such column: scheduled_sessions.user_id: SELECT "scheduled_sessions".* FROM "scheduled_sessions"  WHERE "scheduled_sessions"."user_id" = 1
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: scheduled_sessions.user_id: SELECT "scheduled_sessions".* FROM "scheduled_sessions"  WHERE "scheduled_sessions"."user_id" = 1

どのスケジュールされたセッションがそのインストラクター(ユーザー)に属しているかを確認できるように、逆の方法で関係を設定するにはどうすればよいですか?

4

1 に答える 1

4

User has_many 関係にも外部キーを設定する必要があります。

has_many :scheduled_sessions, :foreign_key => 'instructor_id'
于 2012-04-27T22:51:04.387 に答える