2016-11-29 5 views
0

非常に単純なレールの関連付けを構築し、コンソールでテストします。私はUserモデルとCoursesモデルを持っています。これらは、次のように関連付けられています。railsアクティブなレコードの関連付け、コンソールからのビルドを使用して外部キーを埋める

class User < ApplicationRecord 
    has_many :courses, :dependent => :destroy 
end 

class Course < ApplicationRecord 
    belongs_to :teacher, :foreign_key => 'teacher_id', :class_name => 'User' 
end 

コンソールを使用してテストし、私は私がと残っていますことをやって、しかし

User.first.courses.build 

を実行するために、コースのテーブル内のuser_idの列を持っている必要がありますコーステーブルの空のteacher_id。私はコースのテーブルでのみteacher_idカラム(私には冗長思えるなしのuser_id)を持っているとして間違いを発見されました

User.first.courses.build 

答えて

0

を実行し、自動的にそれを埋めることが可能であるかどうかを知りたい

私の団体。

をすべてが期待どおりに動作します。このように

has_many :taught_courses, :foreign_key => :teacher_id, :class_name => "Course", :dependent => :destroy 

ユーザモデルはteacher_idを通じてコースに関連付けられている必要があります

関連する問題