【问题标题】:How do I validate a password on Rails?如何在 Rails 上验证密码?
【发布时间】:2012-09-26 06:28:50
【问题描述】:

如何仅在“创建”和“更改”上验证密码字段。

如果更新页面上为空则跳过验证,这意味着用户不想更改它?

这是表格的一部分

<%= semantic_form_for [:admin, @account] do |f| %>
  <%= f.semantic_errors %>

  <%= f.inputs do %>
    <%= f.input :email %>
    <%= f.input :password %>
    <%= f.input :password_confirmation, :label => 'Confirm Password' %>

我在这里尝试过答案

How do I exclude password fields from validation during record update? (Rails 3.0.4, Ruby 1.9.2)

但它仍然会在更新时检查密码字段何时为空。

【问题讨论】:

  • 你使用什么认证系统?设计?
  • 是的。我是该项目的新手,只熟悉默认的 Rails 验证
  • 如果您发布控制器的功能以及模型验证的内容会更好,因为客户端代码不进行验证

标签: ruby-on-rails ruby


【解决方案1】:

如果您使用的是设计认证系统,您可能需要查看以下文档: https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-account-without-providing-a-password

【讨论】:

    【解决方案2】:

    如果您想跳过验证和回调,也许 this answer 可以帮助您...

    【讨论】:

      【解决方案3】:

      只需这样做:

      validates :password, presence => true, :if => :password
      

      这将在更新时跳过。

      【讨论】:

      • 由于密码字段在更新时为空,因此引发错误(前端)。
      • 在所有 Rails 应用程序中,甚至在任何应用程序中更新密码和更新字段都在单独的页面上完成,所以最好在单独的页面上完成意味着单独的功能
      猜你喜欢
      • 2011-07-04
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 2011-11-29
      • 2012-02-25
      • 1970-01-01
      相关资源
      最近更新 更多