我在tasks
表中有一个属性,它的名称为is_active
,它是boolean
。但是我忘记在创建表时将默认值设置为此属性。现在我正在尝试默认将此值设置为true
,但正如我从sqlite浏览器中看到的那样 - 新任务仍然在创建时将此值设置为NULL
。你能帮我吗?找到我的迁移问题在哪里?
迁移文件:
class AddDefaultValueToTask < ActiveRecord::Migration[5.0]
def change
def up
change_column :tasks, :is_active, :boolean, :default => true
end
def down
change_column :tasks, :is_active, :boolean, :default => nil
end
end
end
Schema.rb文件
create_table "tasks", force: :cascade do |t|
t.text "body"
t.boolean "is_active"
t.integer "project_id"
t.string "deadline"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["project_id"], name: "index_tasks_on_project_id"
end
答案 0 :(得分:2)
您缺少哈希火箭操作员:&#39; =>
&#39;
change_column :tasks, :is_active, :boolean, :default => true
此外,如果您使用up
和down
,则需要删除change
块。两种方法不能同时使用