Rails Model 中的数据声明和 migrate 中的数据声明有什么不同啊?

xufeng · April 17, 2012 · Last by douya0808 replied at April 17, 2012 · 2798 hits

model 代码:

class Keyword < ActiveRecord::Base
    validates :name, :presence => true, :uniqueness => true
end


migrate 代码

class CreateKeywords < ActiveRecord::Migration
  def change
    create_table :keywords do |t|
      t.string :name, :null => false
      t.integer :level, :null => false, :default => 0

      t.timestamps
    end
  end
end


这 2 者的声明有什么不同吗?如何使用呢?

model 中那个是数据声明?这个不是验证非空且唯一吗:)

validates 是数据校验,migration 是数据/模式迁移

LZ 问的应该是 :presence => true:null => false 的区别。前者是 save 的时候检查对象对应属性。后者是让数据库把那一列属性设置为不可为 NULL。一个 MODEL 层一个在数据库。

@Rei 师傅早:)~

You need to Sign in before reply, if you don't have an account, please Sign up first.