非活动记录模型验证i18n

时间:2014-04-18 15:49:03

标签: ruby-on-rails

我使用的模型不是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,因为它不能使用客户端验证。

1 个答案:

答案 0 :(得分:1)

我发现使用以下工作正如预期的那样。

<强> en.yml

 activemodel:
    errors:
      models:
        user:
          attributes:
            phone: 
              invalid: "PhoneNumber is invalid"

<强> user.rb

validates  :phonenumber, :format => { with: /someregex/ }