Подтвердить что ты не робот

Devise NoMethodError 'для' ParameterSanitizer

Я с ума с ошибкой, которую я получаю каждый раз, когда я пытаюсь петь/петь в Интернете.

Журналы Heroku:

Started GET "/users/sign_in" for 201.235.89.150 at 2016-07-06 01:35:03 +0000
 Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.0ms)
NoMethodError (undefined method `for' for #<Devise::ParameterSanitizer:0x007f5968e0a920>):
 app/controllers/application_controller.rb:11:in `configure_permitted_parameters'

application_controller.rb

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

  before_filter :configure_permitted_parameters, if: :devise_controller?

    protected

        def configure_permitted_parameters
            devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :provider, :uid) }
            devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :current_password) }
        end
end

Дело в том, что он работает нормально локально. Это просто на Хереку. А также он работал отлично всего пару дней назад.

4b9b3361

Ответ 1

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

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email])
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes: [:bank_name, :bank_account]])
  end
end

"Метод .for устарел в 4.1 +

Первый arg - это имя действия.: sign_up предназначен для создания новых ресурсов Devise (таких как пользователи) и: account_update предназначен для редактирования/обновления ресурса.

Второй аргумент:: содержит массив разрешенных параметров.

Если вы хотите nested_attributes, есть пример в: account_update, вы помещаете отдельный массив с ключом, который является _attributes. "