覆盖Devise的参数

时间:2017-07-03 10:18:36

标签: ruby-on-rails ruby ruby-on-rails-4 devise

我只想修改

中密码参数的值

Devise::SessionsController我当前的代码如下所示:

class Api::V1::SessionsController < Devise::SessionsController

  before_action :override_params, only: [:create]

  private

  def override_params
    params[:user][:password] = '123123123'   
  end

end

在上面的代码中,我正在尝试修改用户密码的值 但是当我尝试登录时,似乎它不会覆盖用户密码参数。我仍然得到我在URL上输入的值而不是我在控制器中覆盖的值。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效(未经测试)

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_in) do |user_params|
      u_params = user_params.permit(:username, :email)
      u_params[:password] = '123123123'
      u_params.permit!
    end
  end
end