大綱:
Model 資料驗證
為什麼要做資料驗證?
資料驗證確保只有有效的數據才能存入資料表中。例如:我們需要用戶提供一個有效的電子郵件地址和姓名。在 Model 做驗證是最有保障及安全的,只有通過驗證的資料才能儲存到資料庫裡。
下列幾種方法會觸發資料驗證,如果驗證失敗就不會把資料存入到資料庫中:
下列幾種方法會跳過資料驗證,不管驗證是否通過,都會把資料存入到資料庫,使用時要特別注意:
另外,要特別注意的是,使用 save 時如果傳入 validate: false 參數,也會跳過驗證,使用時也要特別注意:
save(validate: false)
資料驗證方法介紹:
Active Record 預設定義了很多很多資料驗證輔助方法,可以直接在 Model 中使用。這些輔助方法提供了常用的驗證規則。每次驗證失敗後,都會像該物件本身的 errors,增加一個訊息,而且這些訊息會與所正在驗證的資料屬性是有關聯的。下列將針對此次專案有用到,資料驗證輔助方法來介紹。
numericality:
這個方法會檢查該屬性的值是否只包含數字。預設情況下,匹配的值是可選的正負符號的整數或浮點數。如果只接受正數,就把 :only_integer 為 true.
presence:
這個方法驗證指定的屬性是否“存在”。使用 blank? 來檢查數值是否為 nil 或空字串 (僅有空白的字串也是空字串)。
uniqueness:
這個方法驗證指定的屬性必須為一。