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
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en.