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

Где следует обращать вызовы начальника в приложение для рельсов?

Я относительно новичок в рельсах. У меня есть Devise setup, и вы хотите запустить некоторый код обратного вызова после входа пользователей.

Глядя на страницу Warden wiki, я могу использовать обратный вызов "after_set_user" для выполнения этой логики, например:

Warden::Manager.after_set_user do |user, auth, opts|
  unless user.active?
    auth.logout
    throw(:warden, :message => "User not active")
  end
end

Однако я не уверен, где я должен хранить этот материал. Моя первая мысль заключается в том, что я могу поместить его в config/initializers/devise.rb. Это верно? Он не чувствует себя правильно, добавляя, что является главным образом кодом контроллера в каталоге конфигурации.

4b9b3361

Ответ 1

При загрузке приложения необходимо потребовать перехватчики, поэтому внутри инициализатора инициализации в config/initializers/devise.rb является хорошим кандидатом.

Тем не менее, поведение, которое вы хотите достичь, будет лучше достигнуто с помощью этой функции Devise:

https://github.com/plataformatec/devise/wiki/How-To:-Customize-user-account-status-validation-when-logging-in