一般我们都要模型内使用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 => " 字段不是个数字!" ,
}
怎么样!看到熟悉的汉字了吗?
当然了,如何你进一步操作,比如:哈希表中文信息,覆写error_message_for方法的话,你就可以彻底 地中文化view了。我就不写了,网上的资料也不少。