Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “会话”来自哪里?_Ruby On Rails_Ruby_Session - Fatal编程技术网

Ruby on rails “会话”来自哪里?

Ruby on rails “会话”来自哪里?,ruby-on-rails,ruby,session,Ruby On Rails,Ruby,Session,我正在我的rails应用程序中构建一个会话控制器,我只是不知道为什么这里会出现一些问题。在创建和销毁操作中,会话[index]被分配给nil或一个用户id。但就我所见,这个会话哈希并没有在任何地方定义。为什么会这样?有人能帮我澄清一下吗 为了清楚起见,没有会话模型 class SessionsController < ApplicationController def new end def create user = User.find_by_email(par

我正在我的rails应用程序中构建一个会话控制器,我只是不知道为什么这里会出现一些问题。在创建和销毁操作中,会话[index]被分配给nil或一个用户id。但就我所见,这个会话哈希并没有在任何地方定义。为什么会这样?有人能帮我澄清一下吗

为了清楚起见,没有会话模型

  class SessionsController < ApplicationController
  def new
  end

  def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to products_url, :note => "Logged in!"
    else
        render "new"
  end

  def destroy
    session[:user_id] = nil
    redirect_to products_url, :notice => "Logged out!"
  end
end
会话实例方法的功能类似于散列,是Rails API的一部分

Rails完成了设置加密、防篡改会话数据存储的所有工作。默认情况下,会话数据保存为浏览器中的cookie。您可以指定其他存储机制,但CookieStore是默认的也是最方便的

CookieStore默认值在config/initializers/session_store.rb文件中设置:

您可以了解有关Rails中会话的更多信息:

关于更多信息,我已经编写了一个示例,展示了如何使用Desive authentication gem管理会话。

会话实例方法的功能类似于散列,并且是Rails API的一部分

Rails完成了设置加密、防篡改会话数据存储的所有工作。默认情况下,会话数据保存为浏览器中的cookie。您可以指定其他存储机制,但CookieStore是默认的也是最方便的

CookieStore默认值在config/initializers/session_store.rb文件中设置:

您可以了解有关Rails中会话的更多信息:


有关更多信息,我编写了一个示例,展示了如何使用Desive authentication gem管理会话。

默认情况下,会话存储在客户端的cookie中,即用户浏览器的cookie中。它不存储在服务器端,即Rails应用程序实际运行的位置

当您使用会话散列时,Rails足够聪明,可以相应地查找/请求会话信息。在默认情况下,Rails知道在浏览器的cookie中设置会话信息,或者从浏览器的cookie中检索信息

您还可以通过设置config.session\u store配置变量


有关详细信息,请参阅。

默认情况下,会话存储在客户端的cookie中,即用户浏览器的cookie中。它不存储在服务器端,即Rails应用程序实际运行的位置

当您使用会话散列时,Rails足够聪明,可以相应地查找/请求会话信息。在默认情况下,Rails知道在浏览器的cookie中设置会话信息,或者从浏览器的cookie中检索信息

您还可以通过设置config.session\u store配置变量

有关更多信息,请参阅

Rails.application.config.session_store :cookie_store, key: '_learn-rails_session'