次のようなモデルがあります。
class Activity < ActiveRecord::Base
attr_accessible :name, :admin
validates :name, :presence => true
validates :admin, :presence => true
end
name プロパティは文字列であり、admin プロパティは移行でブール値として定義されます。
を使用してコンソールでモデルのインスタンスを作成しようとすると、
a = Activity.create(:name => 'Test', :admin => 0)
次に、管理者に値を提供する必要があると言って、検証が失敗します。なんで?値を指定しました。
値をまったく指定しなかったのか、それとも nil を指定したのか理解できました。しかし、0 のような値 (さらに言えば false) によって検証が失敗するのはなぜでしょうか?