我正在阅读敏捷Web开发以学习Rails 3.0。作者正在教我们如何在会话控制器中使用此create方法来使用会话。
def create
if user = User.authenticate(params[:name], params[:password])
session[:user_id] = user.id
redirect_to admin_url
else
redirect_to login_url, :alert => "Invalid user/password combination"
end
end
在第
行session [:user_id] = user.id
在将:user_id
分配给它之前,符号user.id
是否存在?或者是这个符号:user_id是在他将user.id分配给它时创建的?是否有一定数量的符号属于这个'会话',或者你基本上可以创建任何名称的东西并为其分配任何东西?
答案 0 :(得分:1)
它是动态创建的。您可以使用调试器并键入p session
来查看会话中的内容。如果您只存储字符串数据,那么您可以非常必须存储您想要的任何内容,尽管存在大小限制。默认会话存储在cookie中,但您也可以将SessionStore设置为服务器端。
我不确定您是否可以使用配置文件更改名称,但session
哈希是Rails使用的特殊变量。所以你应该坚持做session[:my_var] = "whatever'