まず、規則に従うには、モデル名はEnrolledIn
ではなく にする必要がありEnrolled_in
ます。Enrollment
さらに良いことに、名詞として明確な意味を持つまたは何かに変更します。Class
また、モデル名として (すでに Ruby オブジェクトである)を使用しようとすると、問題が発生することになります。おそらく、Course
またはそれに似たものに変更します。
それはさておき、移行のすべての列を定義する必要があります。enrolled_ins
次のようにテーブルを定義できます。
add_table :enrolled_ins do |t|
t.references :student
t.references :course # I'm using course instead of class as noted above
end
ショートカットはreferences
、:student_id と :course_id を整数フィールドとして追加します。
モデル ファイルには、次のものがあります。
# student.rb
class Student < ActiveRecord::Base
has_many :enrolled_ins
has_many :courses, :through => :enrolled_ins
end
# course.rb
class Course < ActiveRecord::Base
has_many :enrolled_ins
has_many :students, :through => :enrolled_ins
end
# enrolled_in.rb
class EnrolledIn < ActiveRecord::Base
belongs_to :student
belongs_to :course
end