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.

Reply via email to