【问题标题】:how to send request in rails console with session?如何在带有会话的 Rails 控制台中发送请求?
【发布时间】:2011-12-29 04:27:45
【问题描述】:

我知道我可以使用 app.getapp.post 在 Rails 控制台中测试控制器。

但是如何设置session?我发现有app.session,但它似乎没有保留它的状态。

   $ app.session[:a] = "123"
   $ app.get "/"
   $ app.session
   => {}

【问题讨论】:

    标签: ruby-on-rails ruby session controller


    【解决方案1】:

    如果您将 RedisStore 用于 Rails 会话,则可以使用以下方便的方法检索会话,并给出会话 ID

    def get_session(sid)
      store = ActionDispatch::Session::RedisStore.new(
          Rails.application,
          Rails.application.config.session_options)
      store.get_session({}, sid)
    end
    

    【讨论】:

      【解决方案2】:

      这是一个关于它的blog post。从我猜测的乏味程度来看,人们通常不会这样做。

      查看 tmp/sessions 并找到最新的文件(在 UNIX 上使用 ls -alrt)。 假设文件名为tmp/sessions/ruby_sess.8eb9614a7e4e1e3b 打开控制台并输入:

      >> session = Marshal.load(File.open('tmp/sessions/ruby_sess.8eb9614a7e4e1e3b'))
      => {"hash"=>{:cart=...
      >> cart = session["hash"][:cart]
      .... 
      

      在这种情况下,我试图访问会话中的购物车对象,该对象以session[:cart] = Cart.new 放置在会话中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多