我已經編寫了一個使用傳統MySQL數據庫的Rails應用程序。一個表包含這一領域Rails無法識別傳統數據庫上的布爾字段
CREATE TABLE `articles` (
`active` tinyint(3) unsigned NOT NULL DEFAULT '0',
);
我固定
t.boolean "active", :default => false
但軌方案不承認那場布爾
[1] pry(main)> Article.new.active.class
=> Fixnum
這將創建一個驗證問題因爲我在我的課上有這個驗證器
class Article < ActiveRecord::Base
validates_inclusion_of :active, :in => [true, false]
end
當我分配布爾值到該字段它們轉換爲Fixnum對象和驗證失敗,消息"1 is not included in the list"
如果我生成具有相同的模型生成的SQL代碼是
CREATE TABLE `posts` (
`active` tinyint(1) DEFAULT NULL,
)
而且一切新的應用正常工作:
[1] pry(main)> Article.new.active.class
=> FalseClass
有沒有什麼辦法讓視爲布爾我的遺產列(可能不運行遷移)?
我也會允許'true'&'false',除非它們根本不工作(即,試圖在該列中插入「true」或「false」給出不正確的結果)。 – Romain 2012-07-26 12:14:36