try*_*000 6 client-side-validation devise ruby-on-rails-3
我的client_side_validations gem在我的表单上工作得非常好.我正在为我的用户模型使用Devise,当我转到edit_user_registration表单时,除了:current_password,:password和:password_confirmation字段之外的所有内容都会抛出验证.
Fort实例是我将电子邮件留空,当我退出该字段时,验证会立即弹出.但是,如果我将current_password字段留空并且tab没有发生任何事情,那么当我提交表单时,我收到错误"1错误禁止此用户被保存:密码不能为空"
谢谢你的帮助
bca*_*lla 15
目前,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 } %>
Run Code Online (Sandbox Code Playgroud)
要么
<%= f.text_field :password, :validate => true %>
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,您可以选择关闭过滤器的验证器.在第二种情况下,它将为该属性上的所有验证器关闭过滤器.条件将在生成表单时进行评估,如果通过,则将验证器添加到input元素以供客户端使用.
| 归档时间: |
|
| 查看次数: |
5295 次 |
| 最近记录: |