2014-10-16 92 views
0

我創建了一個模型(稱爲******中國)不是由一個數據庫表支持:加載ActiveModel存在驗證失敗

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屬性爲零,即驗證不起作用,空的PhoneNumber也被認爲是有效的。如何解決它?

+1

的問題是關於:創建部分,我相當肯定,如果你砍了這一點;-) – jfornoff 2014-10-16 21:26:57

+1

@jfomoff它會工作:你是對的 - 它沒有工作。附:如果您將其作爲答案發布,我會接受它。 – Nick 2014-10-16 21:35:27

回答

1

長話短說,on::create在這種情況下不起作用。

通常驗證並不依賴於行爲,所以你只需要刪除它即可。

有一個好, 揚