Rails中的会话

时间:2011-10-15 01:17:34

标签: ruby-on-rails

我正在阅读敏捷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分配给它时创建的?是否有一定数量的符号属于这个'会话',或者你基本上可以创建任何名称的东西并为其分配任何东西?

1 个答案:

答案 0 :(得分:1)

它是动态创建的。您可以使用调试器并键入p session来查看会话中的内容。如果您只存储字符串数据,那么您可以非常必须存储您想要的任何内容,尽管存在大小限制。默认会话存储在cookie中,但您也可以将SessionStore设置为服务器端。

我不确定您是否可以使用配置文件更改名称,但session哈希是Rails使用的特殊变量。所以你应该坚持做session[:my_var] = "whatever'