我有Rails 5 + React应用程序。在此应用程序中,我想介绍验证。
假设我有一个产品模型,其价格必须大于0且小于5或等于20。
在创建产品模型时,我有两个实例:
这两个对我来说都很清楚如何做。我在React端对表单进行了一些实时验证,并在等待提交表单时进行了一些后端验证。问题是我必须在react和rails中都包含验证数据(在这种情况下为数字0、5、20)。
我一直在想,也许我可以将这些“魔术”数字放在yml文件中,然后导出它们以作出反应。
这是正确的方法吗?是否有人对如何存储必须同时包含在react和rails中的这些值有一个更好的主意?
答案 0 :(得分:2)
如果使用Formik这样的表单系统,则可以通过ssr提供动态验证脚本。无论如何,通常的管理方式是保持验证独立
答案 1 :(得分:1)
如果Rails应用程序提供HTML,则将验证作为道具或数据属性传递给React,如果是单页应用程序(SPA),则传递给JSON。
继续验证服务器端以及执行仅客户端验证是危险的,因为可以通过直接服务器调用绕过它。
如果要传递带有约束的JSON,则可能需要考虑一种模仿可用html5 validation attributes或自定义验证名称的结构。
{
"product": {
"attributes": {
"name": {
"type":"string",
"pattern":"[A-Za-z]",
},
"price": {
"type":"decimal",
"max":"20.00",
"min":"5.00",
},
}
}
}