您好我正在尝试使用rails中的bcrypt忘记密码。我采用了bcrypt文档中描述的方法“forgot_password”并为它制作了一个邮件程序。 我已在我的用户模型中设置此方法,如self.forgot_password
我正在尝试在session / new中的登录表单下的表单中调用此方法,但我认为我没有很好的方法来执行此操作。 这是我的表单代码:
<%= form_for :user, :url=>{:action=>"forgot_password"} do |f| %>
<p>Réintialiser mon mot de passe en renseignant votre email ci-dessous :</p>
<div class="field">
<%= f.text_field :email, :placeholder=>"ex: cdupont@gmail.com" %>
</div>
<div class="actions">
<%= f.submit "Me renvoyer un email", :class => 'btn btn-warning' %></center>
</div>
<% end %>
答案 0 :(得分:1)
def forgot_password
@user = User.find_by_email(params[:email])
random_password = Array.new(10).map { (65 + rand(58)).chr }.join
@user.password = random_password
@user.save!
Mailer.create_and_deliver_password_change(@user, random_password)
end