Где следует обращать вызовы начальника в приложение для рельсов?
Я относительно новичок в рельсах. У меня есть 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. Это верно? Он не чувствует себя правильно, добавляя, что является главным образом кодом контроллера в каталоге конфигурации.
Ответы
Ответ 1
При загрузке приложения необходимо потребовать перехватчики, поэтому внутри инициализатора инициализации в config/initializers/devise.rb является хорошим кандидатом.
Тем не менее, поведение, которое вы хотите достичь, будет лучше достигнуто с помощью этой функции Devise:
https://github.com/plataformatec/devise/wiki/How-To:-Customize-user-account-status-validation-when-logging-in