`
cjyzpcl
  • 浏览: 33953 次
  • 性别: Icon_minigender_1
  • 来自: Charlotte
社区版块
存档分类
最新评论

表单验证错误信息一些使用技巧(适用于快速开发)

阅读更多

      Rails提供了表单验证错误信息的输出,但是本身没有支持中文化,而且在html如想按照指定方式显示需要修改scaffold.css。开发中如果需要快速看到效果的朋友,下面有些简单的技巧供你参考。

      需要完美中文化Validator的,请在Javaeye中自行搜索。

      首先查看下面的代码片段:

ruby 代码
  1. class Diary < ActiveRecord::Base   
  2.   belongs_to :diary_category  
  3.   belongs_to :blog  
  4.   has_many :replies:as => :replyable:dependent => true  
  5.      
  6.   validates_presence_of :title,   
  7.                       :message => "文章主题不能为空!"  
  8.   validates_presence_of :content,   
  9.                       :message => "文章内容不能为空!"  
  10.   validates_length_of :title:in => 5..50,   
  11.                       :too_long => "文章主题必须在5到50字符之间!",   
  12.                       :too_short => "文章主题必须在5到50字符之间!"  
  13.   validates_length_of :content:minimum => 15,   
  14.                       :message => "文章内容必须大于15个字符!"                         
  15.       
  16. end  

    片段中对验证信息进行了一些简单的中文化处理。当Diary的一个对象比如diary保存失败时,我们就可以从diary.errors中来取得错误信息集合。比如下面的controller代码:

ruby 代码
  1. def new_diary   
  2.    if request.get?   
  3.      @categories = @user.blog.diary_categories.collect { |category| [category.name, category.id]}   
  4.      @categories[@categories.size] = [" ""0"]   
  5.      @categories.reverse!   
  6.    else  
  7.      @diary = Diary.new(params[:diary])   
  8.      @diary.created_time = Time.now   
  9.      @diary.blog = @user.blog   
  10.      @diary.viewer_count = 0   
  11.      if @diary.save   
  12.        flash[:message] = ["新增文章成功!"]   
  13.        redirect_to :action => :show_diaries  
  14.      else  
  15.        flash[:error] = []   
  16.        @diary.errors.each { |property, error| flash[:error] << error }   
  17.        redirect_to :action => :new_diary  
  18.      end  
  19.    end  
  20.  end  

    代码将diary保存失败的错误信息处理后转入flash[:error]中,这样在View中就可以通过遍历flash[:error]来使用。这里为了以后适用方便,在application_helper.rb中加入了一个帮助方法。

ruby 代码
  1. def message(messages)   
  2.    if messages != nil and messages.size > 0   
  3.      bulk = ""  
    •      messages.each { |message| bulk << %{class="alarm">#{message}} }   
    •      bulk << ""  
  4.    else  
  5.    ""  
  6.    end  
  7.  end  

    这样就能在View中通过 <!---->和 <!---->显示错误信息。如果需要定义样式,只需要修改message方法即可。

    以上技巧只能解决一时只需,后期还是需要对整个Rails做中文化处理的。不过按照上述方法,可以快速在开发中看到效果,便于调整以后使用。

分享到:
评论
3 楼 chaoqun2003 2008-06-21  
请问你提到的中文化validator的资料哪里能找到?我一直搜索不到阿..
2 楼 cjyzpcl 2007-07-22  
yehs220 写道
不是有error_messages_for,error_message_on吗?

我知道,只是上述是和scaffold中的css绑定的。如果我只需要他的error messages而不需要样式我觉得上面的较为简单些。当然也可以修改error_messages_for方法来修改样式。
1 楼 yehs220 2007-07-22  
不是有error_messages_for,error_message_on吗?

相关推荐

    表单验证js 能够帮助你更好的写表单验证

    在网页开发中,表单验证是必不可少的一环,它确保用户输入的数据符合预期,...通过深入理解各种验证方法和错误提示技巧,并结合实例代码,你可以创建出更加健壮和友好的表单验证功能,提升用户在你网站上的使用体验。

    基于jquery的表单验证框架

    在Web开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,从而防止错误数据的提交,提高用户体验并保护服务器资源。jQuery是一个轻量级、高性能的JavaScript库,使得DOM操作变得简单易行,...

    js会员注册表单验证代码.zip

    总之,这个压缩包提供了一个完整的会员注册表单验证解决方案,适合初学者学习,也适用于有经验的开发者快速集成到自己的项目中。通过研究这个实例,你可以掌握表单验证的基本技巧,了解如何利用jQuery和CSS提升表单...

    Vue快速实现通用表单验证的方法

    在实际开发中,表单验证是不可或缺的一部分,确保用户输入的数据符合预期格式和规则。本文将详细介绍如何在Vue中快速实现通用的表单验证方法。 首先,Vue 提供了数据绑定(`v-model`)和事件处理(`v-on`)等特性,...

    javascript验证表单

    以下是一些关于JavaScript表单验证的重要知识点: 1. **基本概念**:表单是网页上收集用户输入数据的元素,如文本框、选择框、复选框等。验证则是对用户输入数据进行检查的过程,确保其符合预设规则。 2. **事件...

    表单及表单元素

    表单在Web开发中占据着举足轻重的地位,它作为用户与网站交互的关键环节,承载着诸如用户注册、文章发布、评论提交等重要功能。通过表单,用户能够向服务器端发送数据,而前端的JavaScript则负责对这些数据进行初步...

    超赞可视化表单设计器源码

    6. **适用场景**:除了常规的业务表单设计,此设计器还特别适合需要高度定制化和专业化的场景,例如OA系统的审批流程表单,电子病历系统的患者信息录入表单,或是教育行业的在线考试系统等。 综上所述,这款“超赞...

    爱上表单设计Fancy-Form-Design

    《爱上表单设计Fancy-Form-Design》是一本专注于前端开发中表单设计的专业书籍。这本书虽然篇幅不长,但内容精炼且全面,涵盖了表单设计的各个环节,对于前端开发者,尤其是对用户体验有高要求的设计师来说,是一本...

    使用jQuery validate 验证注册表单实例演示

    该插件的使用门槛低,上手简单,规则(rules)的设置直观明了,使得即使是初学者也能快速构建起表单验证功能。 标签“validate 表单验证”是对该插件功能的概括,说明了它专门用于表单验证的用途。 在提供的部分...

    在EXCEL中加入表单

    在Excel中创建表单是一种有效组织数据和收集信息的方式,尤其适用于办公环境中进行数据录入、统计分析或问卷调查。下面将详细介绍如何在Excel中创建和使用表单。 首先,了解表单的基本概念。表单是一种用户友好的...

    form开发GUIDE

    - 使用预定义的模板来快速构建基础表单框架,提高开发效率。 2. **表单验证**: - 设定合理的验证规则,如必填项检查、格式校验等,以避免无效数据的录入。 - 可以利用Form Design Aid内置的验证功能或自定义脚本...

    Laravel开发-validation

    可以通过`attributes`方法自定义验证错误消息中的字段名,使错误信息更易于理解。 11. **验证后回调** 使用`after`方法,可以在验证成功或失败后执行回调函数,进行额外处理。 通过以上介绍,我们可以看出...

    ## PHP语言: 介绍、使用技巧和经典案例

    - **示例**:在执行数据库操作时捕获可能发生的异常,并给出友好的错误提示信息。 #### 三、经典案例分析 ##### 1. WordPress WordPress是一个非常流行的开源内容管理系统,基于PHP和MySQL开发。它提供了一个强大...

    lotus开发手册

    2. **Formula语言**:学习Lotus Notes中的Formula语言,它是用于快速构建规则和计算的简单脚本语言,适用于表单验证和自动化流程。 3. ** LotusScript**:掌握LotusScript编程,这是Lotus Notes的主要编程语言,...

    validform demo

    Validform是一款强大的JavaScript表单验证框架,它旨在简化前端数据验证的过程,提高用户体验。这款工具提供了丰富的验证规则和灵活...通过深入研究这个demo,你可以更好地掌握前端表单验证的技巧,提升项目开发效率。

    用友NC二次开发指导手册

    - **内容概述**:这部分内容介绍了如何构建一个适用于用友NC软件的开发环境,包括数据库搭建、NC安装配置以及Eclipse集成开发环境的设置等。 - **详细介绍**: - **1.1.1 建立数据库** - **知识点**:了解数据库...

    php常用表单验证类用法实例

    本文将详细介绍php常用表单验证类的使用方法,并通过实例分析php在针对表单元素的验证技巧。 首先,表单验证类中定义了多个函数,用于检验输入数据的不同属性。例如,fun_text1()函数用于验证字符串是否是特定长度...

    JS+CSS实现的一种符合用户体验的网页表单特效

    此方法适用于前端开发人员进行深入研究,旨在通过优化用户交互体验来提高表单填写效率和准确性。 #### 关键技术点 ##### 1. 表单验证 表单验证是网页表单设计中的关键环节之一,其主要目的是确保用户输入的数据...

    PHP实例开发源码—PHP觅分类信息系统.zip

    这个系统可能包括发布、浏览、搜索和管理各种分类信息的功能,适用于创建类似于在线广告平台或者信息分类网站。 在PHP觅分类信息系统中,我们可以学习到以下关键知识点: 1. **PHP基础语法**:PHP是服务器端的脚本...

    PHP和MySQL Web开发(原书第五版)源代码

    学会创建动态网页,包括表单验证、文件上传、会话管理以及cookies的使用,是Web开发中的重要技能。 6. 安全实践:安全是Web开发的重要组成部分。书中的内容可能涵盖防止SQL注入、XSS(跨站脚本攻击)和CSRF(跨站...

Global site tag (gtag.js) - Google Analytics