我使用的模型不是ActiveRecord的子项。我想将验证错误消息国际化。
class User
validates_format_of :phone, :with => /someregex/ , message => :'Incorrect phone number'
end
如果我只使用:message => I18n.t(:'errors.models.user.attributes.phone.invalid')
,它总是从en.yml返回字符串,而不管用户的语言环境。
我想避免使用ActiveModel :: EachValidator,因为它不能使用客户端验证。
答案 0 :(得分:1)
我发现使用以下工作正如预期的那样。
<强> en.yml 强>
activemodel:
errors:
models:
user:
attributes:
phone:
invalid: "PhoneNumber is invalid"
<强> user.rb 强>
validates :phonenumber, :format => { with: /someregex/ }