iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0

大綱:

  • Model 資料驗證

Model 資料驗證
為什麼要做資料驗證?
資料驗證確保只有有效的數據才能存入資料表中。例如:我們需要用戶提供一個有效的電子郵件地址和姓名。在 Model 做驗證是最有保障及安全的,只有通過驗證的資料才能儲存到資料庫裡。

下列幾種方法會觸發資料驗證,如果驗證失敗就不會把資料存入到資料庫中:

  • create
  • create!
  • save
  • save!
  • update
  • update!

下列幾種方法會跳過資料驗證,不管驗證是否通過,都會把資料存入到資料庫,使用時要特別注意:

  • decrement!
  • decrement_counter
  • increment!
  • increment_counter
  • toggle!
  • touch
  • update_all
  • update_attribute
  • update_column
  • update_columns
  • update_counters

另外,要特別注意的是,使用 save 時如果傳入 validate: false 參數,也會跳過驗證,使用時也要特別注意:

  • save(validate: false)

資料驗證方法介紹:
Active Record 預設定義了很多很多資料驗證輔助方法,可以直接在 Model 中使用。這些輔助方法提供了常用的驗證規則。每次驗證失敗後,都會像該物件本身的 errors,增加一個訊息,而且這些訊息會與所正在驗證的資料屬性是有關聯的。下列將針對此次專案有用到,資料驗證輔助方法來介紹。

numericality:
這個方法會檢查該屬性的值是否只包含數字。預設情況下,匹配的值是可選的正負符號的整數或浮點數。如果只接受正數,就把 :only_integer 為 true.

presence:
這個方法驗證指定的屬性是否“存在”。使用 blank? 來檢查數值是否為 nil 或空字串 (僅有空白的字串也是空字串)。

uniqueness:
這個方法驗證指定的屬性必須為一。


上一篇
[Day18] Ruby on Rails - Model 關聯性, 參數補充說明
下一篇
[Day20] Ruby on Rails - 寄發信件
系列文
Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言