为什么我会收到错误:''''''''''''''''''

时间:2016-09-09 07:00:44

标签: ruby-on-rails devise controller

我正在尝试向设计用户模型添加新列。但我收到这个文件的错误。我运行了迁移来更改列,已将文本字段添加到视图中。谢谢

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

  protected

  def configure_devise_permitted_parameters
    registration_params = [:full_name, :email, :password, :password_confirmation]

     if params[:action] == 'update'
        devise_parameter_sanitizer.for(:account_update) { 
        |u| u.permit(registration_params << :current_password)}
    else
        if params[:action] == 'create'
            devise_parameter_sanitizer.for(:sign_up) { 
            |u| u.permit(registration_params) 
        }
    end
  end

 end

2 个答案:

答案 0 :(得分:0)

参数Sanitizer API已针对Devise 4

进行了更改

Documentation for Devise 4

您需要将for替换为permit

devise_parameter_sanitizer.permit(:sign_up) { 
        |u| u.permit(registration_params) 
    }

Documentation for Devise 3

您当前的方法应该适用于Devise 3,即:

devise_parameter_sanitizer.for(:sign_up) { 
        |u| u.permit(registration_params) 

希望它有效!

答案 1 :(得分:0)

在最新设计版本中不推荐

for 方法,因此您需要使用允许而不是