gpt4 book ai didi

ruby-on-rails-3 - 导轨 3 : client_side_validations gem and devise password validations

转载 作者:行者123 更新时间:2023-12-04 13:12:15 25 4
gpt4 key购买 nike

我让 client_side_validations gem 在我的表单上工作得非常好。我正在为我的用户模型使用设计,当我转到 edit_user_registration 表单时,除了 :current_password、:password 和 :password_confirmation 字段之外的所有内容都会抛出验证。

例如,我将电子邮件留空,当我离开该字段时,验证会立即弹出。但是,如果我将 current_password 字段留空并从其中退出,则什么也不会发生,那么当我提交表单时,我会收到错误消息“1 个错误禁止保存此用户:密码不能为空”

谢谢你的帮助

http://pastie.org/1907464

最佳答案

目前 ClientSideValidations 将过滤掉任何条件验证器。 Devise 将一些验证器设置为有条件的:https://github.com/plataformatec/devise/blob/master/lib/devise/models/validatable.rb#L24-32

我这样做的原因是因为客户端没有好的方法来确定该条件的真实值。我可以在生成表单时执行此操作,但是如果该条件依赖于可以在表单上更改的值呢?所以我选择过滤它们,让事情回到服务器。

这就是想法,但显然它对某些事情施加了不公平的限制。这是最明显的(也是最流行的)。

所以我计划很快发布一个新版本,允许您明确覆盖条件过滤器。它会像这样工作:

<%= f.text_field :password, :validate => { :presence => true, :confirmation => true } %>

或者
<%= f.text_field :password, :validate => true %>

在第一种情况下,您可以选择关闭过滤器的验证器。在第二种情况下,它将关闭该属性上所有验证器的过滤器。条件将在生成表单时进行评估,如果通过,则将验证器添加到输入元素以供客户端使用。

关于ruby-on-rails-3 - 导轨 3 : client_side_validations gem and devise password validations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com