我一定遗漏了一些基本的东西,但我不断收到验证错误:
应用程序/模型/person.rb
class Person < ActiveRecord::Base
attr_accessible :cell
before_validation :format_cell_string
validates :cell, :length => { :is => 10 }
protected
def format_cell_string
self.cell = self.cell.gsub!(/\D/, '') if self.cell != nil
end
end
在轨道 c
> bib = Person.new(cell: "1234567890")
> bib.save
导致回滚
围兜错误
=> #<ActiveModel::Errors:0x007fcb3cf978d8 @base=#<Person id: nil, created_at: nil, updated_at: nil, cell: nil>, @messages={:cell=>["is the wrong length (should be 10 characters)"]}>
认为这可能是 Rails 控制台或 irb 错误,我也尝试了我的表单,但无济于事。尝试bib = Person.new
, bib.save 然后 bib.update_attributes(cell: "0123456789") 在控制台中也不起作用。我错过了什么吗!我检查了有关验证的rails 文档和有关模型验证的rails api,并尝试了许多不同的方法。有什么想法吗?我使用的是 rails 3.2.6,刚刚升级到 rails 3.2.7。不用找了。