【问题标题】:How to have strong parameters on devise 'edit' view?如何在设计“编辑”视图上有强大的参数?
【发布时间】:2020-09-18 08:45:52
【问题描述】:

我按照these 的说明操作,现在在用户注册时将time_zone 作为字段。

但是,当我尝试时,用户无法编辑该字段:

Unpermitted parameter: :time_zone

我知道的

由于该方法适用于 /sign_up,我怀疑必须对 before_action 进行一些操作,以允许 time_zone 参数在其他页面上工作。例如编辑/添加到这个:

before_action :configure_permitted_parameters, if: :devise_controller?


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

这是我最好的猜测,如果它是正确的,我不知道该怎么做。

另外,我不确定:sign_up 是指路由、控制器方法还是其他?

注意

我尝试过的

尝试 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

【问题讨论】:

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


    【解决方案1】:

    知道了!

      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 的其他方法可以在这里找到:https://github.com/heartcombo/devise#strong-parameters

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多