设计..首次登录后应要求更改密码

我在我的应用程序中使用devise作为身份validation。

我需要在设计中实现function。 首次登录后,用户应要求更改密码。

我试过模型

after_create :update_pass_change def update_pass_change self.pass_change = true self.save end 

检查current_user.sign_in_count是判断首次登录的方法。

你会做这样的事情。

 class ApplicationController < ActionController::Base def after_sign_in_path_for(resource) if current_user.sign_in_count == 1 edit_passwords_path else root_path end end end 

您需要实施编辑/更新密码操作。

 class PasswordsController < ApplicationController def edit end def update if current_user.update_with_password(user_params) flash[:notice] = 'password update succeed..' render :edit else flash[:error] = 'password update failed.' render :edit end end private def user_params params.require(:user).permit(:current_password, :password, :password_confirmation) end end 

配置/ routes.rb中

 resource :passwords 

应用程序/视图/口令/ _form.html.erb

 <%= form_for current_user, url: passwords_path do |f| %> current_password:
<%= f.password_field :current_password %>
password:
<%= f.password_field :password %>
password_confirmation:
<%= f.password_field :password_confirmation %>

<%= f.submit %> <% end %>