【问题标题】:Non active record model validation i18n非活动记录模型验证 i18n
【发布时间】:2014-04-18 15:49:02
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我发现使用以下方法可以按预期工作。

    en.yml

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

    user.rb

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

    【讨论】:

    • 但是,这将返回消息'Phone PhoneNumber is invalid'对吗?这是你所期望的吗?
    • 当 :phone 与正则表达式不匹配时,错误消息只会显示“PhoneNumber 无效”。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多