как отправить запрос в консоль rails с сессией? - PullRequest
1 голос
/ 15 ноября 2011

Я знаю, что могу использовать app.get и app.post для тестирования контроллера в консоли Rails.

а как установить session? Я обнаружил, что есть app.session, но, похоже, он не сохраняет свой статус.

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

Ответы [ 2 ]

1 голос
/ 06 июля 2016

Если вы используете RedisStore для ваших сеансов Rails, вы можете получить сеанс следующим удобным способом, используя идентификатор сеанса

def get_session(sid)
  store = ActionDispatch::Session::RedisStore.new(
      Rails.application,
      Rails.application.config.session_options)
  store.get_session({}, sid)
end
0 голосов
/ 15 ноября 2011

Вот сообщение в блоге об этом.Судя по тому, насколько утомительным является мое предположение, люди обычно этого не делают.

Просмотрите tmp / session и найдите самый последний файл (ls -alrt в UNIX).Допустим, файл называется 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...