Хорошо, думаю, я понял это сейчас. У меня была чуть более сложная ситуация, чем мой пример. У меня на самом деле было следующее:
session[:chat_history][chat.from.id] ||= []
Итак, у меня была ошибка с двойным массивом. Я добавил следующее:
session[:chat_history] ||= []
Проблема была в первый раз, когда я сделал это, я поместил его в метод before_filter. По-видимому, в методе before_filter сессионный объект равен нулю, по крайней мере, так, как у меня есть настройки моего приложения.
Итак, я переместил инициализатор к методам, которые фактически обращаются к сеансу, и жизнь снова стала хорошей.