application_controller中的session_id。 Rails 3

时间:2012-12-23 01:03:17

标签: ruby-on-rails-3 actioncontroller

如何在application_controller中获取session_id。我在这个控制器中创建辅助方法来设置会话并稍后读取它们,我能够从application_controller读取所有会话变量,cookie等。唯一的例外是

会话[:session_id](已尝试的变体 - 会话[:id],会话[“id”],会话[“session_id”] 和request.session_options [:id])

但这些都没有提供session_id值。

在我的观点中,session [:session_id]运行正常。但在应用程序控制器中,这是行不通的。

任何帮助将不胜感激。我显然在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

你忘记了before_filter吗?这对我有用。

class ApplicationController < ActionController::Base
  protect_from_forgery

  before_filter :catch_session_id

  def catch_session_id
    binding.pry
  end
end

    14: def catch_session_id
 => 15:   binding.pry
    16: end

[1] pry(#<WelcomeController>)> session[:session_id]
=> "a7eca9eaaf21cff74c0d21713fcaad09"