Job model has an integer job_price field:
class CreateJobs < ActiveRecord::Migration
def self.up
create_table :jobs do |t|
...
t.integer "job_price"
...
end
end
...
end
I would like to display an error message if user types strings in the job_price field, so I added the following validation:
class Job < ActiveRecord::Base
validates_format_of :job_price, :with => /\A\d{0,10}\z/,
:message => "^Job Price must be valid"
...
end
However, it seems like the validation passes even when I type strings.
Any ideas why ?
Note
I had to add :value => @job.job_price_before_type_cast here:
f.text_field(:job_price, :maxlength => 10,
:value => @job.job_price_before_type_cast)
because, otherwise, if I was typing abc5, for example, and then submit the form, Rails was converted it to 5 (I guess because job_price is defined as integer).