小编M. *_*ton的帖子

关闭浏览器时会话未销毁 - RailsTutorial.org

通过 Michael Hartl 的 railstutorial.org 工作,我在第 8 章(特别是 8.2.3)。当前的问题是实现一个会话来让用户在多个视图中保持登录状态,但本节中实现的功能应该是一个临时会话,当浏览器窗口关闭时它会过期(将用户注销)。这是教科书上的陈述,表明:

如果您完全退出浏览器,您还应该能够验证应用程序是否忘记了您的登录状态,需要您再次登录才能查看上述更改。

我已经在 Google Chrome 和 Firefox 上测试了这个功能——我成功登录,导航到多个页面(以确保我的会话在 log_in 重定向之后仍然存在),然后关闭浏览器——但是当我重新加载网络应用程序时,我仍然登录。我已经完全按照文本中的描述复制了所有代码,但无济于事。作为参考,这是我的sessions_helper.rb文件:

module SessionsHelper

  # Logs in the given user.
  def log_in(user)
    session[:user_id] = user.id
  end

  # Returns the current logged-in user (if any).
  def current_user
    @current_user ||= User.find_by(id: session[:user_id])
  end

  # Returns true if the user is logged in, false otherwise.
  def logged_in?
    !current_user.nil?
  end

end
Run Code Online (Sandbox Code Playgroud)

这是我的sessions_controller.rb文件(该destroy操作尚未实施,因为我还没有在文本中说明为“注销”按钮提供任何功能):

class SessionsController < ApplicationController

  def new …
Run Code Online (Sandbox Code Playgroud)

ruby session login ruby-on-rails railstutorial.org

8
推荐指数
1
解决办法
5070
查看次数

c ++编译错误'预期';' 在声明结束时使用直接大括号初始化

我对 C++ 非常陌生,正在学习我的第一个教程,当我尝试编译课程中的代码时,出现以下错误:

expected ';' at end of declaration
    int x{ }; // define variable x to hold user input (a...
         ^
         ;
Run Code Online (Sandbox Code Playgroud)

我试图运行的程序的完整代码:

#include <iostream>  // for std::cout and std::cin
 
int main()
{
    std::cout << "Enter a number: ";
    int x{ }; 
    std::cin >> x; 
    std::cout << "You entered " << x << '\n';
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在 Macbook Pro 上使用 Visual Studio Code (v.1.46.1),带有 Microsoft C/C++ 扩展 ( https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools )。

我的编译器是 Clang:

Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors visual-studio-code c++17

7
推荐指数
2
解决办法
1876
查看次数