Ruby on rails RubyonRails新手-模型/迁移说明?

Ruby on rails RubyonRails新手-模型/迁移说明?,ruby-on-rails,Ruby On Rails,很抱歉问了一个基本的问题,但是我在理解RoR文档时遇到了一些问题 假设我有3个模型——学生、班级和注册。如果不清楚,学生将注册上课,所以注册的学校应该将学生和班级作为外键。我为每一个表生成了模型,但是我不知道应该将什么放入关联的迁移文件中,而不是每个表的关联模型文件中。我是否在迁移文件中指定表的列,以及模型中的键约束 如果有人能澄清这一点,或者告诉我他们将如何解决我发布的示例问题,那将非常有帮助。谢谢。首先,按照惯例,型号名称应为Enrolled in,而不是Enrolled\u in。更好的是

很抱歉问了一个基本的问题,但是我在理解RoR文档时遇到了一些问题

假设我有3个模型——学生、班级和注册。如果不清楚,学生将注册上课,所以注册的学校应该将学生和班级作为外键。我为每一个表生成了模型,但是我不知道应该将什么放入关联的迁移文件中,而不是每个表的关联模型文件中。我是否在迁移文件中指定表的列,以及模型中的键约束


如果有人能澄清这一点,或者告诉我他们将如何解决我发布的示例问题,那将非常有帮助。谢谢。

首先,按照惯例,型号名称应为
Enrolled in
,而不是
Enrolled\u in
。更好的是,将其更改为
注册
或具有明确名词含义的内容。如果试图使用
(它已经是一个ruby对象)作为模型名,您也会遇到麻烦。也许可以将其更改为
课程
或类似内容

除此之外,您应该定义迁移中的所有列。您可以这样定义
登记的\u 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\u id和:course\u 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
#student.rb
班级学生:注册
结束
#course.rb
课程:注册
结束
#注册于
类EnrolledIn
首先,按照惯例,型号名称应为
登记在
中,而不是
登记在
中。更好的是,将其更改为
注册
或具有明确名词含义的内容。如果试图使用
(它已经是一个ruby对象)作为模型名,您也会遇到麻烦。也许可以将其更改为
课程
或类似内容

除此之外,您应该定义迁移中的所有列。您可以这样定义
登记的\u 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\u id和:course\u 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
#student.rb
班级学生:注册
结束
#course.rb
课程:注册
结束
#注册于
类EnrolledIn