1

我正在我的 Rails 3 应用程序中编写一些表单视图,我想知道其他人可能会做些什么来以 DRY 方式验证前端和后端的表单。

当然,如果没有 Rails 验证,似乎没有办法绕过后端验证。知道这一点,在前端编写相同的验证似乎并不是很干。我已经阅读了一些关于在 2 个地方编写验证的其他线程,但除非有充分的理由这样做,否则我宁愿不这样做。

了解 Rails 的魔力后,可能有一种简单易用的方法可以以 DRY 方式验证前端和后端,但我还没有发现它。也许是验证宝石?

所以我认为在我的前端使用 ajax 来调用我的 User 模型上的验证器方法会很好。例如,我在客户端的用户名字段侦听 jquery 按键然后将字段内容发送到我的名为“checkuser”(或类似的东西)的用户控制器方法。鉴于每个模型有 5 个或更多字段,我最终可能会在我的控制器中使用许多额外的字段检查方法......太丑陋了?

这样做有什么我应该知道的警告吗?我真的应该关心那些禁用 javascript 的人吗?

4

1 回答 1

1

我将在来自 ASP.NET 的背景下回答这个问题。因此,如果有错误,请原谅。

在 ASP.NET 中有一个 DataAnnotation 概念,简而言之就是这样:对于每个经过验证的类,元数据都是根据“Required”或“MinLength(8)”等属性指定的。这提供了 DRY 验证 - 在客户端,这些自动映射到 jquery 函数,在服务器上,这些由运行时使用。

顺便说一句,在大多数情况下都必须验证双方,因为这将防止服务器负载过大(在客户端验证时)并防止错误的数据插入数据库(在服务器端验证时)。

在简单的谷歌搜索之后,似乎在 rails 中存在类似的方法,如本文所述

于 2012-04-16T07:14:29.190 回答