我创建了一个不受数据库表支持的模型(称为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也会被视为有效。如何解决?
答案 0 :(得分:1)
长话短说,关于:: create在这种情况下不起作用。
通常情况下,验证与操作无关,因此只需将其删除即可。
有一个好的, 扬