0

I followed these instructions and now have time_zone as a field when the user signs up.

However, the user cannot edit that field, when I try:

Unpermitted parameter: :time_zone

What I know

Since the approach works on /sign_up, I suspect something has to be done to the before_action to allow the time_zone parameter to work on other pages. e.g. editing / adding to this:

before_action :configure_permitted_parameters, if: :devise_controller?


  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:time_zone])
  end

That's my best guess, and I'm not sure how to do it if it is correct.

Also, I'm not sure if :sign_up is referring to a route, a controller method or something else?

Note

What I've tried

Attempt 1

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit([:sign_up, :update], keys: [:time_zone])
  end

2

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:time_zone])
    devise_parameter_sanitizer.permit(:update, keys: [:time_zone])
  end

3

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:time_zone])
    devise_parameter_sanitizer.permit(:edit, keys: [:time_zone])
  end
stevec
  • 41,291
  • 27
  • 223
  • 311

1 Answers1

1

Got it!

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:time_zone])
    devise_parameter_sanitizer.permit(:account_update, keys: [:time_zone])
  end

That and devise's other methods can be found here: https://github.com/heartcombo/devise#strong-parameters

stevec
  • 41,291
  • 27
  • 223
  • 311