Job
модель имеет целое поле job_price
:
class CreateJobs < ActiveRecord::Migration
def self.up
create_table :jobs do |t|
...
t.integer "job_price"
...
end
end
...
end
Я хотел бы отобразить сообщение об ошибке, если пользователь вводит строки в поле job_price
, поэтому я добавил следующую проверку:
class Job < ActiveRecord::Base
validates_format_of :job_price, :with => /\A\d{0,10}\z/,
:message => "^Job Price must be valid"
...
end
Однако похоже, что проверка проходит, даже когда я печатаю строки.
Есть идеи, почему?
Примечание
Я должен был добавить :value => @job.job_price_before_type_cast
здесь:
f.text_field(:job_price, :maxlength => 10,
:value => @job.job_price_before_type_cast)
потому что, в противном случае, если я, например, набрал abc5
и затем отправил форму, Rails преобразовал ее в 5
(я полагаю, потому что job_price
определяется как целое число).