《基础 Ruby on Rails》的示例程序asagao与Rails2.2相适应
错误信息的国际化(2)
上一章,将实例应用程序 asagao 的默认的错误信息国际化了。
这一章,以模型、字段为单位使错误信息国际化。
member.rb 中有以下描述。
validates_uniqueness_of :member_number,
:message => '与其它重复。',
:if => Proc.new {|member|
positive_integer?(member.member_number) }
(省略)
validates_uniqueness_of :login_name,
:message => '与其它重复。'
validates_uniqueness_of 的默认信息是 t('activerecord.errors.messages.taken') 。
我们的翻译文件里变成“已经使用”。
只就Member 模型,为了将 validates_uniqueness_of 的错误信息变成“与其它重复”,config/activerecord_ja.yml 中记述如下。
(省略)
errors:
messages:
(省略)
models:
member:
taken: 与其它重复。
attributes:
# Overrides model and default messages.
这样一来 member.rb 的开头部分就变得像下面这样简单了。
validates_uniqueness_of :member_number,
:if => Proc.new {|member|
positive_integer?(member.member_number) }
(省略)
validates_uniqueness_of :login_name
接下来,以字段为单位变更错误信息。
member.rb 中有如下描述。
validates_confirmation_of :password,
:message => '密码错误。'
为了将此信息移至翻译文件,config/activerecord_ja.yml 中描述如下。
(省略)
errors:
messages:
(省略)
models:
member:
taken: 与其它重复。
attributes:
password:
confirmation: 密码错误。
刚才的记述变得像下面一样短。
validates_confirmation_of :password
今天就到这吧。下次,继续进行错误信息的的国际化。
(2009/01/10)
- 前言
- 功能测试开头部分的修改等 (2008/12/01)
- rake rails:update (2008/12/15)
- Cookie Store (2008/12/16)
- 分页 (2008/12/17)
- blog_entries 控制台的修改 (2008/12/20)
- 单例资源 (2008/12/21)
- 一口气通过所有功能测试 (2008/12/21)
- 综合测试和rak (2008/12/22)
- 国际化(i18n)的第一步 (2008/12/26)
- 基于Cookie的区域的切换 (2009/01/04)
- ActiveRecord 模型的字段名的国际化 (2009/01/08)
- 错误信息的国际化(1) (2009/01/09)
- 错误信息的国际化(2) (2009/01/10)
- 错误信息的国际化(3) (2009/01/17)
- 错误信息的国际化(4) (2009/01/24)

