rails中用validates進行合法性驗證

2021-08-27 16:30:27 字數 1088 閱讀 7036

活動通中註冊資訊的驗證都是自己寫**驗證的,重構改為用rails自帶的驗證機制驗證的,即用validates驗證。

user模型中對存在性的驗證是使用 validates 方法,傳入 presence: true 引數,如下:

class user < activerecord::base

validates :name, presence: true或者

validates(:name, presence: true)

end

還可以加上長度驗證:

validates :name,  presence: true, length:

也可以格式驗證,比如對email的驗證:

valid_email_regex = /\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

validates :email, presence: true, format:

其中將正規表示式定義為常量 valid_email_regex,ruby 中的常量都是以大寫字母開頭的。

[*]/\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i 完整的正規表示式

/ 正規表示式開始

\a 匹配字串的開頭

[\w+\-.]+ 乙個或多個字母、加號、連字元、或點號

@ 匹配 @ 符號

[a-z\d\-.]+ 乙個或多個小寫字母、數字、連字元或點號

\. 匹配點號

[a-z]+ 乙個或多個小寫字母

\z 匹配字串結尾

/ 結束正規表示式

i 不區分大小寫

唯一性驗證:

validates :email, presence: true, format: , uniqueness: true

validates :email, presence: true,

format: ,

uniqueness:

Rails中的validate校驗

可以使用validates presence of方法宣告模型類別非空驗證 validates presence of name,message 姓名不能為空 validates presence of message 性別不能為空 還可一次為多個屬性驗證 validates presence of...

rails中用extjs遇到乙個問題

今天看extjs自己的build系統,突然產生乙個想法 根據頁面需要,我們也許可以定製需要包含的extjs庫的內容。1.每個頁面在包含js時可以設定自己的元件,例如 rhtml ext get core utilities grid core core state management data c...

特殊驗證validate

jquery.validator.addmethod bytemaxlength function value,element,param returnthis.optional element length param validator.format 不能超過個位元組 乙個中文字算2個位元組 j...