这是我的模型迁移
class CreateSwimmingClassschedules < ActiveRecord::Migration
def change
create_table :swimming_classschedules do |t|
t.integer :slot_id
t.integer :coach_id
t.integer :level_id , :default => 1
t.string :note
t.timestamps
end
end
end
我预计在我打电话后
Swimming::Classchedule.create(:coach_id=>8)
它将在表中生成一个默认的level_id。但不知怎的,它不起作用。我在使用 SQLite 的开发环境中。
我添加
:default => 1
跑完之后
rake db:migrate
这有关系吗? 我缺少什么吗?
最佳答案
运行迁移后添加该行不会产生更改。
您的语法是正确的,但您需要使用该添加来运行迁移。考虑制作一个单独的迁移文件,如下所示:
class ChangeLevelId < ActiveRecord::Migration
def change
change_column :swimming_classschedules, :level_id, :integer, :default => 1
end
end
关于ruby-on-rails - Rails 模型默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205271/