2016-10-11 39 views
0

在我正在构建的学习RoR的应用程序中,我想开始学习更多关于验证的知识。除了构建自定义验证(例如使用正则表达式)之外,我还想知道对于地址,货币,日期/时间格式,语言等数据的常见验证,最好的宝石是什么?这是为了构建一个基本的集合,用于新的应用程序。Rails 5 - 数据验证宝石

我在这些下面来使用:

incoterms,度量单位(来自UNECE或ISO20022)或VAT ID如何?还有其他的我应该看看吗?

+0

我唯一使用的另一个是validates_lengths_from_database。 – David

+1

只是来自经验的评论。不要依赖具有多个连接的大型应用程序的导轨唯一性验证。确保您的数据库具有适当的唯一索引。 –

回答

1

随着您对验证的深入深入,您会发现需要构建用于处理某些主题(电子邮件/货币等)的gems,并不像为您的特定用例开发自定义验证那样简洁。例如,除了电子邮件中的正则表达式之外,我不会使用任何东西,而是通过电子邮件中的正则表达式来验证@符号和后面的一些字符,因为现在有很多后缀(.co/.uk/.me/.us等)很难保证预制宝石。货币验证通常也很简单,因为您希望使用#。## ##格式的特定格式,但是如果您偏离了另一个自定义验证程序而不回退到外部库,则会更好。由于您可能会让他们从您创建的预设列表中选择一个国家,因此国家通常不会通过验证,因此像presence这样的标准导轨验证就足够了。这就是说,我喜欢用来处理客户端验证而不是任何主题的验证gem是“clientSideValidations”gem,但它只适用于rails 4.2。