сеанс [: ключ] = значение не работает - PullRequest
2 голосов
/ 16 июня 2010

Я пытаюсь использовать данные сеанса в своем приложении, и по какой-то причине у меня нет правильной настройки.

Код:

session[:key] = some_value 

Создает следующую ошибку:

The error occurred while evaluating nil.[]

Другие контроллеры не имеют проблем с сеансом, поэтому я предполагаю, что где-то пропустил некоторые базовые настройки.

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Хорошо, думаю, я понял это сейчас. У меня была чуть более сложная ситуация, чем мой пример. У меня на самом деле было следующее:

session[:chat_history][chat.from.id] ||= []

Итак, у меня была ошибка с двойным массивом. Я добавил следующее:

session[:chat_history] ||= []

Проблема была в первый раз, когда я сделал это, я поместил его в метод before_filter. По-видимому, в методе before_filter сессионный объект равен нулю, по крайней мере, так, как у меня есть настройки моего приложения.

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

0 голосов
/ 16 июня 2010

Похоже, переменная сеанса равна nil, что заставляет меня думать, что фреймворк не смог установить ее по одной из следующих причин:

  1. Браузер не передан для сеанса
  2. Браузер передал файл cookie, но он не соответствовал ожиданиям сервера

Было заявлено, что некоторые контроллеры работают. Была ли возможность создать сеанс для пользователя до запуска этих контроллеров?

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