Я вижу ту же проблему, и я поместил в журналы, чтобы проверить, что происходит. В SessionsHelper >> sign_in я вижу, что @current_user устанавливается правильно. Позже, когда мы отображаем страницу пользователя, она вызывает SessionsHelper >> signature_in? но теперь @current_user равен nil, поэтому я не отображаю ссылки «Выйти» и «Профиль», и два теста не пройдены.
Кажется, что происходит то, что когда мы выполняем вход, мы делаем это в экземпляре SessionsController, который вызывает метод sign_in во включенном модуле, который, в свою очередь, устанавливает @current_user в этом экземпляре SessionsController . Затем он перенаправляет пользователя, который передает управление на UsersController, и код в _header.html.erb, который вызывает signature_in? выполняется в контексте UsersController . Однако у этого контроллера есть собственная копия переменной @current_user, которая не выполняется при запуске sign_in в SessionsController, поэтому он возвращает nil.