`
chinapkw
  • 浏览: 110931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

error_messages_for and error_message_on

阅读更多

一般我们都要模型内使用validates_xxx_of 这样的确认信息。而这些信息是英文的,我们用三种方法来中文化它。


一、覆写:message:

validates_format_of :image_url,
:with => %r{.(gif|jpg|png)$}i,
:message => "必须是 GIF,JPG或PNG图片!!!"

使用这种方式时,我们就损失了一些通用信息的方便性。让我们看看第二种方式。

二、修改environment.rb文件:

在其中加入这些语句:

ActiveRecord::Errors.default_error_messages[:inclusion] = " 字段没有包括在列表内!"
ActiveRecord::Errors.default_error_messages[:exclusion] = " 字段已被保存过了!"
ActiveRecord::Errors.default_error_messages[:invalid] = " 字段是无效的!"
ActiveRecord::Errors.default_error_messages[:confirmation] = " 字段不匹配的信息!"
ActiveRecord::Errors.default_error_messages[:accepted] = " 字段必须接受此选项!"
ActiveRecord::Errors.default_error_messages[:empty] = " 字段不能为空!"
ActiveRecord::Errors.default_error_messages[:blank] = " 字段不能为空!"
ActiveRecord::Errors.default_error_messages[:too_long] = " 字段太长了(最大是 %d 个英文字符)!"
ActiveRecord::Errors.default_error_messages[:too_short] = " 字段太短了(最小是 %d 个英文字符)!"
ActiveRecord::Errors.default_error_messages[:wrong_length] = " 字段长度有错误(应该是 %d 个英文字符)!"
ActiveRecord::Errors.default_error_messages[:taken] = " 字段已经选择过了!"
ActiveRecord::Errors.default_error_messages[:not_a_number] = " 字段不是个数字!"

这样,你就获得了通用信息的方便性,即使你没有使用:message来覆写中文信息,你的view中显示的也是中文

但是我发现它有两个不便之处:一是修改时要重启WEBrick才能生效。二是在测试时会提示出错的。我用了第三种方式。

三、修改application_help.rb文件:

在该文件中加入下面语句:

ActiveRecord::Errors.default_error_messages = {
:inclusion => " 字段没有包括在列表内!" ,
:exclusion => " 字段已被保存过了!" ,
:invalid => " 字段是无效的!" ,
:confirmation => " 字段不匹配的信息!" ,
:accepted => " 字段必须接受此选项!" ,
:empty => " 字段不能为空!" ,
:blank => " 字段不能为空!" ,
:too_long => " 字段太长了(最大是 %d 个英文字符)!" ,
:too_short => " 字段太短了(最小是 %d 个英文字符)!" ,
:wrong_length => " 字段长度有错误(应该是 %d 个英文字符)!" ,
:taken => " 字段已经选择过了!" ,
:not_a_number => " 字段不是个数字!" ,
}

在Ruby On Rails里面,当你在对一些数据进行验证的时候,如果在视图里使用<%= error_messages_for “xxx” %><%= error_message_on “xxx”, “xxx” %> 方法输出错误信息的时候,ror会自动帮你加上<div class=”xxx”>xxx</div>等这样的HTML标签,可是有时候我们并不想使用系统默认的标签处理,尤其是在WAP编程的时候,因为这些HTML标签WML根本就解析不了,所以我就希望不输出这些标签,只要得到干净的错误信息就行了,其实实现这种思路很简单,首先:
1:在application_helper.rb的全局转helper类里定义如下方法:
 
  def clear_error_message_on(object, method, prepend_text = “”, append_text = “”, css_class = “formError”)
    if errors = instance_variable_get(”@#{object}”).errors.on(method)
      “#{prepend_text}#{errors.is_a?(Array) ? errors.first : errors}#{append_text}”
    end
  end
 
2:然后在需要显示错误信息的视图里调用这个方法就行,如:
<%= clear_error_message_on “page”, “title” %>

评论

相关推荐

    wr_diab_compiler_error_messages_reference_5.9.pdf

    《Wind River Diab Compiler Error Messages Reference 5.9》是一份详细的技术文档,专注于解释和解决使用Wind River Diab编译器时可能出现的错误信息。这份文档是针对VxWorks操作系统开发者的,VxWorks是Wind River...

    fnd_message

    FND_MESSAGE.ERROR; -- 然后要么引发 FORM_TRIGGER_FAILURE 异常,要么退出当前例程 ``` ##### 5. `FND_MESSAGE.GET` - **功能**:从消息文件中获取翻译后的字符串。 - **示例**: ```plsql DECLARE msg ...

    message_block:替代error_messages_for,功能更强大,更灵活

    该视图助手通过从模型中获取错误消息并将其与Flash消息(错误,确认等多种类型)组合并输出到视图中,从而替代了error_messages_for。 该gem附带示例样式表和图像。 安装:Rails 3.1+ Asset Pipeline(message_...

    SML NJ Error Message_函数式_ML_

    `SML NJ Error Messages.htm` 文件很可能是SML NJ的错误消息参考文档,它详细列出了可能遇到的错误类型和它们的解释。这个文档通常会帮助开发者理解错误的根源,以及如何修复它们。错误消息通常包括错误类型、发生...

    Oracle9i Database Error Messages

    Oracle9i Database Error Messages Release 2 (9.2) Contents Title and Copyright Information Send Us Your Comments Preface Audience Organization Related Documentation Conventions Documentation ...

    Oracle Database Error Messages

    2. 错误消息(Error Message):描述了错误的具体情况,包括错误的原因、影响以及可能涉及的组件。 3. 补救措施(Remedy):提供了修复错误的建议或步骤,有时会包括修改SQL语句、检查系统配置或执行特定的数据库...

    手机游戏开发实例(smartphone联机炸弹人)

    Windows Programming and Message Handling essentials ...........................................................................8 II.1.3. Drawing Bitmaps to the screen.................................

    Spring 3 MVC 国际化 ResourceBundleMessageSource spring:message

    一个简单的基于Maven 3 和...error_messages_en.properties error_messages_zh.properties 没有库文件,maven配好了会自动加载库文件。也可自己搭建好,拷贝文件过去运行。可参考http://www.docin.com/p-467977489.html

    oracle error message oracle code error oracle返回码

    2. **查阅Oracle文档**:Oracle文档,如《Oracle Database Error Messages》手册,提供了所有错误代码的详细解释和可能的解决方案。 3. **网络搜索**:通过搜索引擎查找错误代码,通常可以找到其他用户遇到类似问题...

    ttoolly:Django测试工具

    {'field1':(value1,value2)} custom_error_messages {} 特定字段的自定义消息custom_error_messages = {'field1':{message_type:u“错误消息文本。”}} 错误[] 不覆盖(存储当前测试的错误值) 档案[] 当前...

    [绝版文档] Error and Event Messages Help 错误及事件消息 微软官方文档 CHM [免费版]

    Error and Event Messages Help 错误及事件消息 微软官方文档 CHM [免费版] 此帮助文件包含由Windows 2000所产生的大多数错误和事件消息。对每个消息,有详细的解释及建议用户操作。 This Help file contains most...

    ajv-error-messages

    var normalise = require ( 'ajv-error-messages' ) ; var SchemaValidator = require ( 'ajv' ) ; var schemaValidator = SchemaValidator ( { allErrors : true } ) ; var schema = { description : 'test schema...

    8-07-14_MegaCLI for linux_windows

    SCGCQ00341724 Defect FW allows a firmware to be flashed through Online FW Update method in DOS and then breaks into montask SCGCQ00342848 Defect Add Adapter restart support in CLI SCGCQ00342993 Defect...

    Senfore_DragDrop_v4.1

    NO_WIN32_LEAN_AND_MEAN The define *must* be made in the project options. It is not sufficient to #define it in the source. If you manage to compile with C++ Builder (any version), I would very ...

    Clustering by Passing Messages Between Data Points

    Clustering data by identifying a subset of representative examples is important for processing sensory signals and detecting patterns in data. Such “exemplars” can be found by randomly choosing an ...

    php.ini-development

    On = Enabled and buffer is unlimited. (Use with caution) ; Off = Disabled ; Integer = Enables the buffer and sets its maximum size in bytes. ; Note: This directive is hardcoded to Off for the CLI ...

    BURNINTEST--硬件检测工具

    - Minor changes to the No operation error watchdog timer for the CD and Hard disk tests. - Minor correction to the Butterfly seek test. - Video playback trace logging increased. Release 5.3 build ...

    EurekaLog_7.5.0.0_Enterprise

    17)..Added: Support for relative file paths and environment variables for events and various module paths 18)..Added: Logging in Manage tool 19)..Added: Windows 10 version detection 20)..Added: Stack ...

Global site tag (gtag.js) - Google Analytics