Ruby on rails 如何基于表单输入有条件地更新模型

Ruby on rails 如何基于表单输入有条件地更新模型,ruby-on-rails,forms,devise,Ruby On Rails,Forms,Devise,我有一个“设置”页面,用户可以在其中更新信息和密码。与姓名和电子邮件字段相同的表单上有密码和密码确认字段。这样做的正确方式是什么?如果我只是把密码字段放在同一个表单上,而用户没有尝试更改它,它会给我一个密码不能为空的验证错误。有没有一种“适当”的方法来做到这一点 编辑:顺便说一下,我正在使用Deave 编辑:以下是我的用户模型代码: class User < ActiveRecord::Base # Include default devise modules. Others avai

我有一个“设置”页面,用户可以在其中更新信息和密码。与姓名和电子邮件字段相同的表单上有密码和密码确认字段。这样做的正确方式是什么?如果我只是把密码字段放在同一个表单上,而用户没有尝试更改它,它会给我一个密码不能为空的验证错误。有没有一种“适当”的方法来做到这一点

编辑:顺便说一下,我正在使用Deave

编辑:以下是我的用户模型代码:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :reset_password_token

  has_one :lineup
class用户
您可以尝试以下方法:

validates :password, :presence=>true, :on=>:create

因此,当用户更新其数据时,密码将是可选的。

这是否适用于用户模型?我试过这样做,但它仍然说‘密码不能为空’是的,这会出现在用户模型中(假设您正在存储密码数据)。你能在这里包括你的模型代码,特别是验证吗?顺便说一句,我从未使用过Desive,所以我不知道这可能会产生什么样的影响。