礙於時間的關係,內容可能會甚為簡略 Orz
今天沒安排好時間給寫文章,請多包涵。
昨天提到了關於把關的手法之一,
那當然少不了所謂驗證這塊囉,
我們先來看看可以怎麼使用:
class Book < ApplicationRecord
validates :name, presence: true
end
在 Book 這個 Model 中,我們希望在書名這個欄位是必填
的,
這樣如果使用者在並未填寫書名欄位的情況下,
就會跳出 "Name can't be blank" 的錯誤訊息,
來告知使用者,必須要填寫書名才能夠前進下個步驟。
我們可以從 rails console 做個實驗~
先讓 b1 = Book.new
當我們執行 b1.save
b1.save
(0.1ms) begin transaction
(0.1ms) rollback transaction
=> false
發現被 rollback 了,我們看一下是發生什麼事了呢?
b1.errors.any?
=> true
你有任何錯誤嗎?是的我有。
那我們再來追問下去:
b1.errors.full_messages
=> ["Name can't be blank"]
呼應到前面所說的,書名是必填的欄位,如果沒有填寫就會發生錯誤!
class Book < ActiveRecord::Base
validates_presence_of :name
end
除此之外,這樣的寫法也可以得到一樣的效果,
驗證資料就是希望我們給使用者填寫的一些資訊,不要被填入一些我們預期以外的資料,
舉例來說身分證字號就是共10碼,但也許誤填的時候我們就要提醒使用者請他修改。
除了驗證必填之外,我們也可以驗證長度(length),
假設我們希望書名不可以超過10個字,價格介於百元到千元之間
class Book < ApplicationRecord
validates :name, length: (maxmum: 10)
validates :price, length: (in: 3..4)
end
還有很多種可以被驗證的資訊,可以去官網參考相關文件
那麼,關於驗證就先寫到這裡了,
希望對你有點幫助~
參考文獻:為你自己學 Ruby on Rails