неинициализированная константа DeviseController - PullRequest
0 голосов
/ 07 сентября 2018

Я получаю неинициализированную константу DeviseController, которая мне явно требуется для проекта Devise gem в Rails, а не для использования Bundle.require в application.rb

У меня есть следующее в application_controller.rb:

require 'devise'
class ApplicationController < ActionController::Base
  include Devise::Controllers::Helpers

  before_action :configure_permitted_parameters, if: :devise_controller?

Но devise_controller?invokes :: DeviseController и по некоторым причинам он не определен.Что здесь происходит?

1 Ответ

0 голосов
/ 07 сентября 2018

Использование require в приложении Rails - это красный флаг.Его следует использовать редко, если вы не создадите свою собственную функциональность за пределами области действия вашего MVC (которая обычно находится в каталоге lib) ...

Если вы установили devise ... просто удалитеваши require и include операторы ...

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

И все должно быть хорошо, если у вас есть закрытый метод с именем configure_permitted_parameters т.е. ... (с вашими соответствующими пользовательскими атрибутами и действием)

def configure_permitted_parameters
  devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...