Rails のバージョンは 3.2.8 で、デフォルトのデータベースを使用しています。これは私の移行コードです:
class AddQuantityToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :quantity, :integer,:default=>1
end
end
ここで :default オプションについての説明を見つけました。それが言ったように、新しい LineItem を作成するとき、デフォルトの数量 = 1 にする必要がありますが、Rails コンソールから取得したものは次のとおりです。
lineb=LineItem.new
#<LineItem id: nil, product_id: nil, cart_id: nil, created_at: nil, updated_at: nil, quantity: nil>
そして、データベースから LineItem を取得すると、数量フィールドも nil になります。
そして、ここに db/schema.rb があります:
ActiveRecord::Schema.define(:version => 20121008065102) do
create_table "carts", :force => true do |t|
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "line_items", :force => true do |t|
t.integer "product_id"
t.integer "cart_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "quantity"
end
create_table "products", :force => true do |t|
t.string "title"
t.text "description"
t.string "image_url"
t.decimal "price", :precision => 8, :scale => 2
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end