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

xufeng · 2012年04月17日 · 最后由 douya0808 回复于 2012年04月17日 · 2803 次阅读

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 层一个在数据库。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号