`
netfork
  • 浏览: 486101 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

验证前自动清除模型属性的空格

    博客分类:
  • Ruby
阅读更多

validates_presence_of时,如果属性中有空格,就不管用了。

在进行验证时,一般都需要trim(ruby是strip)后再验证,但是ror的验证并没有象struts2一样提供先trim再验证的接口,还好有一个插件可以自动清除属性两边的空格。

http://github.com/rmm5t/strip_attributes/tree/master

 

StripAttributes

StripAttributes is a Rails plugin that automatically strips all ActiveRecord model attributes of leading and trailing whitespace before validation. If the attribute is blank, it strips the value to nil .

It works by adding a before_validation hook to the record. By default, all attributes are stripped of whitespace, but :only and :except options can be used to limit which attributes are stripped. Both options accept a single attribute (:only => :field ) or arrays of attributes (:except => [:field1, :field2, :field3] ).

Examples

  class DrunkPokerPlayer < ActiveRecord::Base
    strip_attributes!
  end

  class SoberPokerPlayer < ActiveRecord::Base
    strip_attributes! :except => :boxers
  end

  class ConservativePokerPlayer < ActiveRecord::Base
    strip_attributes! :only => [:shoe, :sock, :glove]
  end

Installation

Option 1. Use the standard Rails plugin install (assuming Rails 2.1).

  ./script/plugin install git://github.com/rmm5t/strip_attributes.git

Option 2. Use git submodules

  git submodule add git://github.com/rmm5t/strip_attributes.git vendor/plugins/strip_attributes

Option 3. Use braid (assuming you’re using git)

  braid add --rails_plugin git://github.com/rmm5t/strip_attributes.git
  git merge braid/track

Other

If you want to use this outside of Rails, extend StripAttributes in your ActiveRecord model after putting strip_attributes in your $LOAD_PATH :

  require 'strip_attributes'
  class SomeModel < ActiveRecord::Base
    extend StripAttributes
    strip_attributes!
  end
分享到:
评论

相关推荐

    办公自动化系统java实现后台,jsp前台

    办公自动化系统(Office Automation System,简称OAS)是利用信息技术,整合组织内部的工作流程,提高工作效率,实现信息共享和协同工作的系统。在这个“办公自动化系统java实现后台,jsp前台”的项目中,开发者采用...

    web测试功能模型

    Web测试功能模型主要关注的是对Web应用程序中各类控件的功能性和正确性的验证。在编写测试用例时,我们需要从多个角度来确保每个控件都能按照预期工作。以下是一些关键的知识点: 1. **文本输入框**: - **空值...

    LDA模型于文本分析文档

    3. **删除空白符号**:清除文本中的空格、换行符等空白字符,确保数据的整洁; 4. **分词处理**:对文本进行分词处理,根据研究需求可以选择以“词”或“字”为基本单位进行处理。 ##### 2. 模型训练与验证 使用...

    DOM基础教程之模型中的模型节点

    又或者,在表单验证中,开发者需要检查某个输入框是否有title属性,此时就要访问该输入框元素的属性节点。 总结来说,DOM模型为我们提供了一个可以用来操作和访问文档内容的编程模型。通过理解和掌握DOM中元素节点...

    vb编写数独源码

    - 使用类封装数独模型,包含属性(如当前状态、是否已解决等)和方法(如填充、验证、解决等)。 3. **数独验证**: - 实现一个函数,遍历数组的每一行、每一列和每个小九宫格,检查数字是否重复。 4. **数独...

    mayfish 数据入库验证代码

    `$tableName` 属性设置了与该模型关联的数据库表名,即 "members" 表。`$verify` 数组则定义了一系列的数据验证规则,这些规则包括: 1. `NotEmpty`:检查字段是否为空,如 "username"、"password" 和 "email" 必须...

    WEB测试用例.doc

    - 检查空格前的数据删除是否正常。 - 测试无输入的情况以及`tab`和`enter`键的功能。 4. 查询模块 - 精确查询时,测试输入有效和无效数据,确保正确数据能被找到,错误数据有提示。 - 模糊查询,验证部分匹配...

    darkent yolo自定义数据标注训练全流程说明示例

    - 在训练过程中,定期评估模型在验证集上的性能,根据结果调整学习率或优化器设置。 - 训练完成后,保存模型权重,用于后续推理或微调。 8. 应用与优化: - 使用保存的权重文件进行推理,检测新的图像或视频流。...

    2021-2022计算机二级等级考试试题及答案No.9332.docx

    - Access 2003 自动创建的主键默认是“自动编号”型数据,这确保了每个记录的唯一性。 - 关系型数据库使用二维表来表示实体和实体间的联系,这是关系数据库模型的基础。 - SQL中的“选择”操作是从关系中找出满足...

    CSS层叠样式表入门指南ppt

    - **CSS瘦身**:通过压缩工具,如CSSDrive(http://www.cssdrive.com/index.php/main/csscompressor),删除多余空格、换行,提高文件加载速度。 ### CSS属性 CSS涵盖众多属性,例如: - **字体属性**:`font-...

    2021-2022计算机二级等级考试试题及答案No.12271.docx

    19. `RangeValidator`验证控件用于检查输入值是否在指定范围内,适合确保输入大于30的值。 20. WWW(World Wide Web)是基于Internet的一种服务,而非网络本身。 21. 删除Windows中的应用程序通常不只是删除相关...

    数据挖掘工具rapidminer

    为了处理缺失数据,RapidMiner提供了多种方法,如删除缺失数据的记录、填充缺失值(例如使用平均值、中位数、众数或通过其他预测算法进行估算)、或者应用模型预测缺失值。处理缺失数据的正确方法取决于数据的特性...

    酒店管理系统课程设计说明书 - java swing access

    - 系统登录:用户通过登录窗体验证身份后进入主界面。 - 主界面:展示客房状态和顾客信息,根据状态改变颜色,同时显示用户和其他酒店信息。提供通往房间管理、住房登记和退房登记的入口。 - 房间管理:用户可...

    Ultra CORBA Simulator 中文手册--CORBA 自动化图形测试工具

    - **空格处理:** 解释如何在正则表达式中处理空格字符。 综上所述,Ultra CORBA Simulator (UCS) 是一款功能强大且易于使用的 CORBA 测试工具,能够极大地简化 CORBA 应用程序的开发与测试流程。通过本手册提供的...

    1928队B题1

    这两个比率的计算结果能验证模型在处理未知语言序列比对时的可行性和有效性。 【相似度搜寻】 在没有样本的情况下,为了找到高度相似的序列部分,题目引入了相似度搜寻机制。这可能涉及到动态规划、滑动窗口或其它...

    5月最新大厂前端高频核心面试题.pdf

    清除浮动主要是为了解决浮动元素对其后元素布局的影响,常用方法包括使用clear属性、创建一个空元素并应用clear属性等。 CSS优化方法包括合理使用选择器、避免过度使用通配符选择器、减少使用@import等。 div的...

Global site tag (gtag.js) - Google Analytics