我的rails版本是3.2.8並使用默認數據庫。 這是我的移民代碼:rails add_column具有默認值但默認值不生效
class AddQuantityToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :quantity, :integer,:default=>1
end
end
I find a explaination about :default option here和它說,當我創建一個 新的LineItem,它應該有一個默認數量= 1,但這裏是我從鐵軌控制檯中看到:
lineb=LineItem.new
#<LineItem id: nil, product_id: nil, cart_id: nil, created_at: nil, updated_at: nil, quantity: nil>
而且,當我從數據庫中獲取LineItem時,數量字段也是零 。
這裏是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
回滾遷移並重新運行。 –
我有類似的問題。我在遷移中有兩個「change_column」語句,第二個語句對模式沒有任何影響。,對我而言,我的兩個「change_column」語句分爲兩個遷移。 –