关于Ruby on Rails视图编写的一些建议
不要直接从视图调用模型层。
不要在视图构造复杂的格式,把它们输出到视图helper的一个方法或是模型。
使用partial模版与布局来减少重复的代码。
加入clientsidevalidation至惯用的validators。要做的步骤有:
声明一个由ClientSideValidations::Middleware::Base而来的自定validator
moduleClientSideValidations::Middleware
classEmail<Base
defresponse
ifrequest.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文件加入一个它的参照:
#app/assets/javascripts/application.js.coffee #=requirerails.validations.custom
添加你的用户端validator:
#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
returnoptions.message||'invalide-mailformat'