【问题标题】:Is it crazy to rely solely on backend validations to validate forms on the front end?仅仅依靠后端验证来验证前端的表单是不是很疯狂?
【发布时间】:2012-04-16 07:04:38
【问题描述】:

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

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

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

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

以这种方式我应该知道任何警告吗?我真的应该关心那些禁用 javascript 的人吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 forms html validation


    【解决方案1】:

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

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

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

    在简单的谷歌搜索之后,rails 中似乎存在类似so post 中所述的方法。

    【讨论】:

    • 是的,我认为你是对的,降低客户端请求可能是在客户端上复制代码的充分理由。
    猜你喜欢
    • 2011-09-19
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多