0

我正在尝试更新密码。这是我的表格

<%= form_for(:profile, url: {action: 'change_password'}, remote: true ) do |f| %>
<%= f.password_field :password %>
<% end %>

这是我的控制器

def change_password
    @customer = Customer.find session[:customer_id]
    unless params[:profile].nil?
      password = params[:password]
      @customer.update_attribute(:password, password)
    end
  end

在注册期间,我已加密并保存了我的密码。这是我的模型

def self.generate_hash password
        Digest::SHA1.hexdigest password   #Showing error in this line
    end

    def generate_password
        self.password = Customer.generate_hash self.password
    end

但是在更新密码时出现错误

no implicit conversion of nil into String
4

1 回答 1

1

尝试

def self.generate_hash password
    Digest::SHA1.hexdigest password.to_s   #Showing error in this line
end

更新

尝试更换

password = params[:password]

经过

password = params[:profile][:password]

这可能导致密码保持为零。

于 2013-11-07T18:08:15.087 回答