ActiveModel状态验证失败

时间:2014-10-16 21:23:28

标签: validation ruby-on-rails-4 activemodel

我创建了一个不受数据库表支持的模型(称为PhoneNumber):

class PhoneNumber
  include ActiveModel::Validations

  attr_accessor :pnumber

  validates :pnumber, presence: true, on: :create #=> { :message => " cannot be blank" }
  validates :pnumber, numericality: true, on: :create
end

我在控制台中测试它是这样的:

2.0.0-p451 :001 > example = PhoneNumber.new
=> #<PhoneNumber:0x007f839c90c690> 
2.0.0-p451 :002 > example.valid?
=> true 
2.0.0-p451 :003 > example.pnumber
=> nil 

如您所见,即使:pnumber属性为nil,即使验证无效,空PhoneNumber也会被视为有效。如何解决?

1 个答案:

答案 0 :(得分:1)

长话短说,关于:: create在这种情况下不起作用。

通常情况下,验证与操作无关,因此只需将其删除即可。

有一个好的, 扬