Rails 4 + Devise - Undefined options when updating user account

I have the following setup:

routes.rb

devise_for :users, :path_names => { :controllers => {:omniauth_callbacks => "omniauth_callbacks", :registrations => "registrations"}

      

and RegistrationController

:

class RegistrationsController < Devise::RegistrationsController

  def update
    ...
  end

  def user_params
    params.require(:user).permit(:tw_account, :fb_account, :current_password, :password, :password_confirmation)
  end
end

      

But every time I try to update user data, I get this error message:

Unproduced parameters: tw_account, fb_account

But when I create a new account with these two fields, they persist. How do you make them updatable?

thank

+3


source to share


3 answers


This works for me, inherits Devise :: RegistrationsController

class RegistrationsController < Devise::RegistrationsController

  before_filter :configure_permitted_parameters

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:account_update).push(:tw_account, :fb_account)
  end

end

      



You should also remove the current_password, password_confirmation and password from the parameters because they have already been processed.

+8


source


You might want to go with



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

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:tw_account, :fb_account, :current_password, :password, :password_confirmation) }
  end
end

      

+4


source


Problem solved with change ' devise_parameter_sanitizer.for'

fromdevise_parameter_sanitizer.permit

My line works fine:

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

    protected

    def configure_permitted_parameters
        devise_parameter_sanitizer.permit(:account_update) { |u| u.permit(:name, :last_name, :image,:email, :password, :password_confirmation, :current_password) }
    end
end

      

0


source







All Articles