MIgration没有工作轨道

时间:2016-08-11 18:36:44

标签: sql ruby-on-rails sqlite

我在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

1 个答案:

答案 0 :(得分:2)

您缺少哈希火箭操作员:&#39; =>&#39;

change_column :tasks, :is_active, :boolean, :default => true

此外,如果您使用updown,则需要删除change块。两种方法不能同时使用