ruby-on-rails - 如何将正则表达式字符串存储在辅助方法中以用于验证几个不同的字段?
问题描述
我有几个不同的字段,将不同的电话号码作为字符串存储在我的 rails 应用程序中。我可以使用带有正则表达式的内置 rails 格式验证器。有没有办法将此表达式放在我所有电话号码验证的辅助方法中,而不必打开每个模型文件并粘贴表达式字符串。
解决方案
您可以要求 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
文件夹中的某个位置,这些文件会在启动时自动加载,您可以在那里定义共享类/模块/常量
推荐阅读
- elasticsearch - 将filebeat连接到elasticsearch
- jquery - 如何获取每个函数jquery中的第一个元素id
- php - 从 mysqli 结果的不同列中回显不同的列值
- node.js - 在主机上更改挂载卷中的文件时,不会在 docker 容器中触发文件系统事件
- html - 父元素上的 Ionic 4 制表符切割
- node.js - 在连接之前检查模板字符串
- python - 它检测颜色吗?
- ruby - 如何在 sequel ruby 中转换每个查询的输出时区?
- python - 如何解决使用 ldap3 更改管理器属性的“结果:19 约束违规错误”?
- javascript - Cloud Function 根据时间戳立即删除节点,而不是在两小时后删除(删除旧子节点不起作用)