【问题标题】:create a new table with one-to-many relationshiop创建具有一对多关系的新表
【发布时间】:2019-02-07 16:18:52
【问题描述】:
我有一个使用 Rails 2 的旧 Rails 项目。已经有模型类Student。在数据库中,有一个表students。现在,我需要实现每个学生可以有多个课程。这意味着我需要在数据库中有一个新表 courses 表并且从学生到课程具有一对多的关系。
如何创建迁移文件来做到这一点?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-2
【解决方案2】:
如果您实际使用的是 Rails 2.3,这应该不会太难
还有 TBH,如果你不是至少 2.3,那么你可能应该完全重新创建这个项目......
1.) 使用ruby script/generate model Course name:string description:text student_id:bigint 生成迁移,应该如下所示:
class CreateCourses < ActiveRecord::Migration
def self.up
create_table :courses do |t|
t.string :name
t.text :description
t.bigint :student_id
t.timestamps
end
end
def self.down
drop_table :courses
end
end
2.) 在您的项目目录中找到新创建的名为 course 的 MODEL,并将关联添加到文件中:
belongs_to :student
3.) 在您的项目文件夹中找到 STUDENT 模型并将 has_many 关联添加到其中:
has_many :students
4.) 在您的终端中,cd 进入您的项目文件夹并运行 rake db:migrate
你应该很好去追求!这是 Rails 2.3 关联的参考:https://guides.rubyonrails.org/v2.3/association_basics.html