0

这是我的迁移:

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​​ 的默认行为还是我仍然需要添加默认 => 0,以确保它们不会为空?事实上,我不想开始检查变量是否为空。

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

感谢您的帮助

4

1 回答 1

4

您必须将每列的默认值显式设置为零,否则默认值为空/空。

t.integer :ical, :default => 0
于 2012-11-22T17:24:39.517 回答