Ruby on Rails:根据区域设置进行验证

时间:2013-06-17 00:55:35

标签: ruby-on-rails validation rails-i18n

我有一个多语言项目,比如英语和俄语语言环境。 我想要这样的验证:

example.com/ zh_ / book / new < - 在文本字段中,只有 ASCII 符号可用。

example.com/ ru / book / new < - 在文本字段中,只有西里尔符号可用。

最好的方法是什么?

我有个想法在模特中使用'验证... if ... '。

但如果我有很多模型并且我想添加另一个区域设置,我该怎么做?

也许有一些方法可以将这些验证保存在像i18n * .yml这样的单个文件中?

1 个答案:

答案 0 :(得分:1)

您可以编写custom validator并将其包含在您要验证的模型中

I18n.locale将返回您当前的区域设置

case语句中将其用于自定义验证程序中以进行特定于语言的检查

    case I18n.locale
    when :en
      # check for latin characters
    when :ru
      # check for cyrillic characters
    else
      return true
    end