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 のデフォルトの動作ですか、それとも null にならないように default => 0 を追加する必要がありますか? 実際、変数がnullかどうかのチェックを開始したくありません。

いろいろ調べましたが、まだ仕組みがよくわかりません。

助けてくれてありがとう

4

1 に答える 1

4

各列のデフォルトを明示的にゼロに設定する必要があります。それ以外の場合、デフォルトは null/空です。

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