【问题标题】:Rails updating user settings using form_for and blank password fieldsRails 使用 form_for 和空白密码字段更新用户设置
【发布时间】:2014-12-12 03:02:34
【问题描述】:

我正在关注 Hartl 的 Rails 教程,创建编辑用户页面。这就是我在更新方法中更新的方式:

@user.update_attributes(user_params)

其中 user_params 是一种强参数的方法

在用户模型中,我还加入了以下行:

validates :password, length: { minimum: 6 }, allow_blank: true

现在,当我编辑用户名/电子邮件并提交带有空白密码字段的表单时,用户已成功更新(密码保持不变,而不是更改为空白)。这就是我要的。但为什么会这样呢? form_for 方法有什么特别之处吗?如果我使用 rails 控制台并尝试使用 update_attributes 方法和空白密码更新用户,则对象无法保存。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这是因为allow_blank 选项,在这种情况下,Rails 将忽略密码,如果密码为空或 nil。

    我喜欢的另一种方法是来自devise 的方法,通过使用一种称为password_required? 的方法,它们可以处理多种自定义验证,并在您需要覆盖时让您完全控制,但这只是额外的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 2023-04-05
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多