From: Jarl Friis Date: 2010-05-28T19:52:57+09:00 Subject: [ruby-core:30482] confusing behaviour of validates_inclussion_of Hi all wonderfull core-developers. Rails is an amazing framework. I have a model (named Order) with an underlying DB field that is boolean. My migration file looks like this: t.boolean :balloon, :null => false, :default => true In my AR model I dutyfully have a line like this: validates_inclusion_of :balloon, :in => [true, false] In my test like the line below I expect an error, but I get none: order.balloon = 'some text' assert !order.valid? I get no error because the value 'some text' is converted (via type_cast) to false. Hence I get no error. In general I find it confusing that my validation takes place after the column_specific type cast. I would rather have a validation message when my boolean field is set to "some arbitraty text" instead of letting it be swallowed by some fall_back value in ActiveRecord::ConnectionAdapters::Column::value_to_boolean. In general I find it confusing and not clearly documented that validations occur after the type_cast mechanism (is that true for all types? also times/dates?) Jarl