我在我的模型上使用了一些验证并尝试将错误转换为我的语言
在我的模型中,TaiSan
我有一些这样的验证:
class TaiSan < ActiveRecord::Base
attr_accessible :MaTS, :TenTS
validates_length_of :MaTS, :in => 9..10, :allow_nil => false
validates_presence_of :MaTS
validates_uniqueness_of :MaTS
在控制器和视图中,我只是将其保留为默认值(scafford)
在我locales\vi.yml
看起来像这样
vi:
errors: &errors
format: ! '%{attribute} %{message}'
messages:
taken: đã tồn tại trong cơ sở dữ liệu
blank: không được trống
empty: không được rỗng
too_long:
one: quá dài (tối đa là 1 kí tự)
other: quá dài (tối đa là %{count} kí tự)
too_short:
one: quá ngắn (tối thiểu là 1 kí tự)
other: quá ngắn (tối thiểu là %{count} kí tự)
wrong_length:
one: sai độ dài (phải là 1 kí tự)
other: sai độ dài (phải là %{count} kí tự)
除了 validate_uniqueness_of 的错误消息之外的任何其他都可以正常工作,它被翻译成我上面定义的语言,但taken:
仍然是'...has already been taken'
任何线索我错过了什么???非常宝贵的任何提示和答案
解决方案
我像这样添加了一些vi:
代码locale\vi.yml
:
vi:
activerecord:
errors:
messages:
taken: "đã tồn tại"
现在它工作正常!那么为什么我必须activerecord
在唯一性验证之前添加它但其他(存在,长度,...)不需要????