我正在尝试更新密码。这是我的表格
<%= 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
答案 0 :(得分: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]
这可能导致密码保持为零。