gpt4 book ai didi

ruby-on-rails-3 - rails add_column 有默认值但默认值不生效

转载 作者:行者123 更新时间:2023-12-04 05:29:41 26 4
gpt4 key购买 nike

我的 rails 版本是 3.2.8 并使用默认数据库。
这是我的迁移代码:

class AddQuantityToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :quantity, :integer,:default=>1
end
end

I find a explaination about :default option here 正如它所说,当我创建一个
new LineItem ,它应该有一个默认数量=1,但这是我从 rails 控制台得到的:
lineb=LineItem.new
#<LineItem id: nil, product_id: nil, cart_id: nil, created_at: nil, updated_at: nil, quantity: nil>

And when i get LineItem from the database,the quantity field is nil too.



这是 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

最佳答案

您的迁移应该可以正常工作。根据您的架构,尽管它看起来实际上尚未生效,因为 t.integer "quantity"没有默认值。
quantity 的模式中的行应该是这样的:

t.integer  "quantity",   :default => 1

确保您实际运行了迁移( bundle exec rake db:migrate ),如果这不起作用,则回滚( bundle exec rake db:rollback )并再次运行迁移(如@surase.prasad 建议的那样)。

关于ruby-on-rails-3 - rails add_column 有默认值但默认值不生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12778561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com