如果我不向迁移方法添加“default”,那么字段值是否为null?

时间:2012-11-22 17:21:44

标签: ruby-on-rails migration rails-migrations

这是我的迁移:

def change
  create_table :activities do |t|
    t.integer :week
    t.decimal :jog, :precision => 3, :scale => 1
    t.integer :pushups
    t.integer :situps
    t.decimal :bicycl, :precision => 3, :scale => 1
    t.integer :squats
    t.integer :lunges
    t.integer :ical
    t.integer :bcal
    t.integer :foodid
    t.integer :bmi
    t.decimal :bmr, :precision => 5, :scale => 2
    t.references :user
    t.timestamps
  end

  add_index :activities, :user_id
end

我想要的是在创建对象时为这些字段设置 0 值。这是ruby的默认行为还是我还需要添加default => 0,确保它们不会为空?实际上我不想开始检查变量是否为null。

我做了一些研究,但我仍然不明白它是如何运作的。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您必须为每列显式设置默认值为零,否则默认值为null / empty。

t.integer :ical, :default => 0