我正在我的Rails 3应用程序中编写一些表单视图,我想知道其他人可能正在做什么来以干燥的方式验证前端和后端的表单。
当然,似乎没有方法可以在没有rails验证的情况下在后端进行验证。知道这一点,在前端编写相同的验证似乎并不严重。我已经阅读了一些关于在2个地方编写验证的其他主题,但除非有充分理由这样做,否则我宁愿不这样做。
了解rails的神奇之处,可能有一种简单,简单的方法以干燥的方式验证前端和后端,但我还没有发现它。也许是验证宝石?
所以我认为在我的前端使用ajax在我的User模型上调用验证器方法会很好。例如,客户端上的用户名字段侦听jquery按键,然后将字段内容发送到我的用户控制器方法“checkuser”(或类似的东西)。鉴于每个模型有5个或更多字段,我的控制器中可能会有很多额外的字段检查方法...太丑了?
关于这样做,我应该知道吗?我真的应该关注那些禁用javascript的人吗?
答案 0 :(得分:1)
我将从ASP.NET背景中回答这个问题。所以请原谅一些错误,如果有的话。
在ASP.NET中有一个DataAnnotation概念,简而言之就是这样:对于每个经过验证的类,元数据都是根据“Required”或“MinLength(8)”等属性指定的。这提供了DRY验证 - 在客户端上,它们自动映射到jquery函数,在服务器上运行时使用它们。
顺便说一下,在大多数情况下验证双方是必须的,因为这样可以防止过多的服务器负载(在客户端验证时),并防止不正确的数据插入数据库(在服务器端验证时)。
在简单的谷歌搜索后,似乎存在类似的方法,如so post中所述。