服务器之家

服务器之家 > 正文

关于Ruby on Rails视图编写的一些建议

时间:2020-05-05 11:41     来源/作者:脚本之家

    不要直接从视图调用模型层。
    不要在视图构造复杂的格式,把它们输出到视图 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'
标签:

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
返回顶部