Ruby on rails “会话”来自哪里?
我正在我的rails应用程序中构建一个会话控制器,我只是不知道为什么这里会出现一些问题。在创建和销毁操作中,会话[index]被分配给nil或一个用户id。但就我所见,这个会话哈希并没有在任何地方定义。为什么会这样?有人能帮我澄清一下吗 为了清楚起见,没有会话模型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
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'