在 rails 中重构验证逻辑和正则表达式的最佳方法是什么?



假设您有几个模型,其中包含地址、邮政编码、省/国家、电话号码等字段。

这些是具有特定正则表达式验证的相当常见的字段。如果在每个模型中放置相同的验证和正则表达式,则会重复。此外,测试是重复的。这是一种气味;)

使用 ruby 和 rails 重构这些类型的东西的最佳方法是什么?模块?

在带有Hibernate的Java中,我们使用Component类来存储地址,然后将验证逻辑放在那里。每个想要使用地址的模型都只包含一个地址,它将获得所有地址验证逻辑。

在轨道中实现相同目标的方法是什么?谢谢!

为所需的各种类型的验证构建自定义验证程序,然后在模型类中调用它们。

例如:

类 PostalCodeValidator <ActiveModel::EachValidator><<"必须是 5 位数的邮政编码"    结束  结束

现在,在每个模型类和作为邮政编码的每个属性中使用该验证。例如,如果您的客户具有属性postal_code:

类 客户<活动记录::基本> true结束

有更多的细节和很多花哨的选择,所以我建议在 rails 自定义验证器上进行谷歌搜索。

相关内容

最新更新