Rails create_table查询

时间:2010-04-27 20:30:57

标签: ruby-on-rails ruby activerecord

我是Rails的初学者。在以下代码中,有一个id设置为false。这是什么意思?

class CreateCoursesStudents < ActiveRecord::Migration 
  def self.up
    create_table :courses_students, **:id => false** do |t| 
      t.integer :course_id,:null => false 
      t.integer :student_id, :null => false
    end
    # Add index to speed up looking up the connection, and ensure # we only  
    enrol a student into each course once 
    add_index :courses_students, [:course_id, :student_id], :unique => true
  end

  def self.down
    remove_index :courses_students, :column => [:course_id, :student_id]
    drop_table :courses_students 
  end
end

由于

2 个答案:

答案 0 :(得分:4)

:id => false定义了一个没有主键的表,这对于例如为多对多关系创建连接表时。

答案 1 :(得分:0)

:null =&gt; false表示对于在courses_students表中创建的任何行,有问题的字段不能为空。