我有一個模型Rails的傳遞驗證測試
class Vehicule < ActiveRecord::Base
before_validation :set_principal, :if =>:new_record?
private
def set_principal
self.principal ||= !!principal
end
end
如果我測試了一下,當我做Vehicule.new.valid?
它總是返回FALSE。爲什麼我必須在函數中添加true
才能通過測試?
private
def set_principal
self.principal ||= !!principal
true
end
因爲你沒有通過'principal',那麼它就像'nil'一樣,如果'!! nil => false' – 7urkm3n
所以如果函數返回false,模型的驗證失敗?我只是想把'false'設置爲'principal'屬性。不要讓模型無法創建。如果我想能夠創建'vehicule',我的功能需要返回true?這是正確的方法? –
是'Vehicule.new.valid?'返回'false'模型不會保存。 – 7urkm3n