【问题标题】:Rails internationalisation for web form validation用于 Web 表单验证的 Rails 国际化
【发布时间】:2014-10-06 12:20:34
【问题描述】:

我正在开发一个应用程序,该应用程序将对其部署的各个国家/地区采用服务器端电话号码验证。例如,英国手机号码都包含以 07 开头的 11 位数字。在另一个国家/地区,手机号码可能包含不同的数字或可能以不同的代码开头。我想使用这种特定于国家/地区的电话号码规范来验证网络表单的输入。请注意,该应用程序将针对每个国家/地区单独部署。因此,对于英国版本的应用程序,以 099 开头或仅包含 10 位数字的数字将引发提交错误(例如“无效的手机号码”),而德国版本的应用程序则根本不会引发错误。

实现这种特定于语言环境的表单验证最优雅的方法是什么?我查看了 i18n gem,但我不确定它是否会轻松支持它。

【问题讨论】:

    标签: ruby-on-rails-4 internationalization rails-i18n


    【解决方案1】:

    如果你的验证是服务器端的,你可以看看joost/phony_rails

    我引用描述: 这个 Gem 为您的 Rails 应用程序添加了有用的方法来验证、显示和保存电话号码。它使用了超级棒的 Phony gem

    【讨论】:

    • 谢谢 - 很高兴知道这颗宝石。是的,我的验证是服务器端的。但我想自己定义验证条件。问题是如何根据语言环境在验证条件之间切换?因此,实际上,这是一个超越国际电话格式的更广泛的问题。
    • 要验证,您可以执行类似validate :your_fct 的操作(注意“验证”不带“s”)。在函数your_fct 中,您可以使用case/when 来测试语言环境并使用适当的验证条件。在评论中给出更多解释并不容易,但如果你愿意,我可以写一个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多