设计编辑用户没有密码

时间:2016-02-14 16:53:33

标签: ruby-on-rails ruby-on-rails-4 devise

我正在阅读有关如何允许用户无需密码编辑帐户的documentation on devise。按照他们的第一个建议,我得到了

ActiveRecord::RecordInvalid Exception: Validation failed: Password can't be blank, Password confirmation can't be blank

我的控制员:

class UserPreferencesController < Devise::RegistrationsController

  def update_profile
    @user = User.find(current_user.id)
    if @user.update!(account_params)
      sign_in @user, :bypass
      render json: [], status: 201
    else
      render json: [], status: 422
    end
  end

  def account_params
    params[:user].permit(:first_name, :last_name, :email, :sex, :phone_number, :location, :birthday)
  end

end

我尝试了第二次

def update_resource(resource, params)
  resource.update_without_password(params)
end

同样的错误。那么如何在没有密码和json

的情况下更新设备中的用户

1 个答案:

答案 0 :(得分:1)

覆盖您要更新的模型中的password_required?

def password_required?
  false
end

这足以在不提供密码的情况下编辑/更新资源。