【问题标题】:sessions in RailsRails 中的会话
【发布时间】:2011-10-15 01:17:33
【问题描述】:

我正在阅读 Agile Web Development 来学习 Rails 3.0。作者正在教我们如何在会话控制器中使用这种创建方法来使用会话。

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

行内

会话[:user_id] = user.id

在他将user.id 分配给它之前,符号:user_id 是否存在于某处?或者这个符号 :user_id 是在他将 user.id 分配给它的那一刻创建的?是否有一定数量的符号属于此“会话”,或者您基本上可以创建具有任何名称的东西并为其分配任何东西?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

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

    【讨论】:

    • 所以您可以将其命名为其他名称(假设您不想遵循命名约定)?
    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2015-04-23
    • 2016-05-19
    • 2013-01-31
    • 2011-07-11
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多