Rails 4 + 设计 + 系统更新密码但未授权用户并注销

Rails 4 + Devise + System update the Password but Unauthorized the User and signout

在我的 Rails 项目中,我使用 Devise 进行身份验证。

第 1 步。使用电子邮件 ID 和密码 - 系统允许登录。

第 2 步。尝试更新密码 - 代码是 HomeController 而不是任何设计控制器。

第3步。它允许更新密码。但是通过给出未经授权的消息,将会话和用户抛出系统。

class HomeController < ApplicationController
  before_filter :authenticate_user!
  def update_password
    user = User.find(current_user.id)
    user_save = user.update_attributes(:password => params[:user][:password],
                                        :password_confirmation => params[:user][:password_confirmation])
    if user_save
        redirect_to "/MyProfile", notice: 'User data successfully saved.'
    else
        redirect_to "/MyProfile", notice: 'EROROROOROROROROR.'
    end     
  end
end

HTML代码:

<form class="navbar-form navbar-left" accept-charset="UTF-8" action="/UpdatePassword" id="CreateUserPassword" method="post">
  <input name="authenticity_token" type="hidden" value="<%= form_authenticity_token.to_s%>">
  <div class="form-group">
    <input type="text" class="form-control" placeholder="Password" name="user[password]">
     <input type="text" class="form-control" placeholder="Password Confirmation" name="user[password_confirmation]">
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

请提出一些建议...

重定向之前,您必须重新登录用户

sign_in @user, :bypass => true

请参阅 https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password

下的解决方案 3