不要直接從視圖調用模型層。
不要在視圖構造復雜的格式,把它們輸出到視圖 helper 的一個方法或是模型。
使用 partial 模版與布局來減少重復的代碼。
加入 client side validation 至慣用的 validators。 要做的步驟有:
聲明一個由 ClientSideValidations::Middleware::Base 而來的自定 validator
1
2
3
4
5
6
7
8
9
10
11
12
|
module ClientSideValidations::Middleware class Email < Base def response if request.params[ :email ] =~ /^([^@\s]+)@((?:[-a-z0- 9 ]+\.)+[a-z]{ 2 ,})$/i self .status = 200 else self .status = 404 end super end end end |
建立一個新文件public/javascripts/rails.validations.custom.js.coffee 并在你的 application.js.coffee 文件加入一個它的參照:
1
2
|
# app/assets/javascripts/application.js.coffee #= require rails.validations.custom |
添加你的用戶端 validator:
1
2
3
4
5
6
7
8
|
#public/javascripts/rails.validations.custom.js.coffee clientSideValidations.validators.remote[ 'email' ] = (element, options) -> if $.ajax({ url: '/validators/email.json' , data: { email: element.val() }, async: false }).status == 404 return options.message || 'invalid e-mail format' |