在rails活动记录中创建关联

时间:2014-02-11 03:34:11

标签: ruby-on-rails activerecord

我是Active Record的新手。实际上我想创建两个模型学生和课程,其中一个学生有很多课程但课程只属于一个学生。我已经创建了模型和关联迁移,如下所示:

rails g Student roll_num:string name:string
rails g Course code:string name:string

学生的模型应该是理想的:

class Student < ActiveRecord::Base
   has_many :course
end

那当然应该是理想的那样:

class Course < ActiveRecord::Base
   belong_to: student
end 

我的问题是这样的模型可以用rails g生成,如果是这样,怎么样?在创建模型后,如果我指定关联,那么我必须这样做,以便它反映在数据库中,我的意思是外键在课程表中创建。我是否必须为此单独进行迁移?

2 个答案:

答案 0 :(得分:1)

rails g model Student roll_num:string name:string

rails g model Course code:string name:string student:references:index

另外,学生has_many:课程

其他资源:http://edgeguides.rubyonrails.org/migrations.html

答案 1 :(得分:0)

首先在学生模型中更改您的关联

has_many :course

您的迁移文件应包含外键

class CreateCourses < ActiveRecord::Migration
  def change
    create_table :courses do |t|
      # your columns
      t.references :student

      t.timestamps
    end
  end
end

相同 见http://sunilsharma3639.wordpress.com/2014/01/10/things-which-rails-could-do-but-i-didnt-know/

希望它能帮到你