我的书说要运行" rails g控制器会话"并将其编辑为
class SessionController < ApplicationController
def create
user = User.find_or_create_from_auth_hash(request.env['omniauth.auth'])
session[:user_id] = user.id
redirect_to root_path
end
end
什么是会话[:user_id]?如果X是控制器,Y和Z是一些字符串,我可以定义为X [:Y] = Z吗?
答案 0 :(得分:1)
会话[:user_id]是一个特殊变量,可以像哈希一样访问,将您存储的所有信息存储到应用程序的会话中。
您可以在此处阅读有关Rails会话的更多信息:http://guides.rubyonrails.org/action_controller_overview.html#session
它基本上是一个Hash,它在存储信息的请求之间共享,并在后续请求中重用它。
答案 1 :(得分:0)
session [:user_id]是一个变量,您之前需要存储并在整个会话中重复使用它。 F.E.您有身份验证,然后您必须跳过需要user_id的页面。所以你可以使用session来存储它。您可以在http://guides.rubyonrails.org/security.html找到更多信息。
答案 2 :(得分:0)
没有。 session
只是响应[](key)
方法的对象。您无法定义controller[:foo] = 'bar'