首页 > 解决方案 > 如何将正则表达式字符串存储在辅助方法中以用于验证几个不同的字段?

问题描述

我有几个不同的字段,将不同的电话号码作为字符串存储在我的 rails 应用程序中。我可以使用带有正则表达式的内置 rails 格式验证器。有没有办法将此表达式放在我所有电话号码验证的辅助方法中,而不必打开每个模型文件并粘贴表达式字符串。

标签: ruby-on-railsruby

解决方案


您可以要求 application.rb 中的任何文件:

# application.rb
require Rails.root.join "lib", "regexes.rb"

# lib/regexes.rb
PHONE_NUMBER_REGEX = /your regex/

然后你只需在需要的地方使用常量

您也可以使用 Rails 的内置自动加载功能,例如使用其他评论者提出的关注方法 - 默认情况下会自动加载关注文件,模型、控制器等也是如此

加载自定义文件而不是使用 Rails 的默认值可能看起来不是惯用的或“rails 方式”。但是,我确实认为了解您可以加载任何您想要的文件是很重要的。有些人自动加载整个lib/文件夹和子文件夹(请参阅在 Rails 4 中自动加载 lib 文件

另一种选择是将您的代码放在config/initializers文件夹中的某个位置,这些文件会在启动时自动加载,您可以在那里定义共享类/模块/常量


推荐阅读