我一直在試圖弄清楚如何做到這一點,而無需手動定義驗證,但目前爲止沒有任何成功。電梯記錄:所需字段的空值,但沒有驗證錯誤
我有一個StringField
class Foo private() extends MongoRecord[Foo] with ObjectIdKey[Foo] {
...
object externalId extends StringField(this, 255) {
// none of these seem to have any effect on validation whatsoever:
override def optional_? = false
override def required_? = true
override def defaultValueBox = Empty
}
...
}
現在,當我打電話.validate
在Foo
,則返回沒有錯誤:
val foo = Foo.createRecord
foo.validate match {
case Nil => foo.save
...
}
...和文檔保存到(蒙戈)DB沒有externalId
。
所以問題是:是否有任何方式都有電梯自動驗證缺少的字段,而我不必手動添加東西到validations
?
編輯:我對於Django和Rails等框架提供的開箱即用的生產力類型的想法太多了嗎?即像基本和非常頻繁的驗證,而不必寫任何東西,但只有一些聲明性屬性/標誌。如果是,那麼Lift爲什麼選擇不提供這種東西?爲什麼有人不是想要.validate
自動考慮所有的def required_? = true
/def optional_? = false
字段?
我的假設是,鑑於如此高生產力和相對成熟的框架,這樣的要求以前會突然出現一百萬次,而且有些東西只是開箱即用......但無論如何,那麼'required_?'和'optional_?'呢? –
順便說一句,如何定義這樣一個'Required'特徵並不完全明顯,因爲涉及的類型... –
好的,更新了我的答案 –