我的第一个想法是覆盖会话和注册控制器以检查具有阻塞位的用户的模型,但是我有一种感觉可能会有一个更优雅的方式.
def after_sign_in_path_for(resource) if resource.is_a?(User) && resource.banned? sign_out resource banned_user_path else super end end