相关疑难解决方法(0)

Rails 3 SQLite3 Boolean false

我试图在SQLite3表中插入一个错误的布尔值,但它总是插入一个真值.

这是我的迁移:

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.column :name, :string
      t.column :active, :boolean, :default => false, :null => false
    end
  end

  def self.down
    drop_table :resources
  end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试使用rails插入时,它会生成以下SQL:

INSERT INTO "users" ("name", "active") VALUES ('test', 'f')
Run Code Online (Sandbox Code Playgroud)

SQLite将'f'视为true,因此它将true插入到我的数据库中.我想要它生成的查询是:

INSERT INTO "users" ("name", "active") VALUES ('test', false)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

rails:3.0.7

sqlite3 gem:1.3.3

sqlite ruby-on-rails ruby-on-rails-3 rails-activerecord

9
推荐指数
1
解决办法
7954
查看次数