Я добавил атрибут с именем активирован для моего пользователя. Если это 0, я хочу запретить вход в систему, если это 1, я хочу разрешить это. Я переопределил контроллер сессий устройства, чтобы быть таким
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message(:notice, :signed_in) if is_navigational_format?
if resource.activated == 0
redirect_to root_path
return
end
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end
и мои маршруты такие
devise_for :users, :controllers => {:registrations => 'registrations', :sessions => 'sessions'} do
get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end
почему он по-прежнему разрешает вход в систему пользователям с активированным = 0. (Я предполагаю, что эта функция вызывается при входе в систему.)