Ответ 1
Да, вы должны увидеть такую ошибку в консоли:
DalliError: No server available
Однако вы все равно получите куки файл сеанса, так как Rails будет генерировать его и отправлять в браузер. это просто, что Rails не имеет места для хранения данных, связанных с файлом cookie.
Итак, для демонстрации попробуйте следующее:
-
Остановить memcached. В некоторых действиях контроллера выполните следующее:
def some_action puts session[:test] session[:test] = "hello" end
Вы не должны видеть "привет" в STDOUT.
-
Теперь перезапустите memcached и снова нажмите действие. (возможно, потребуется дважды обновить браузер). На этот раз вы должны увидеть "привет" .
-
Если вы снова остановите memcached, "привет" больше не будет отображаться.
Надеюсь, это даёт понять, что генерация файла cookie (содержащего ключ сеанса) и хранение данных против значения файла cookie (то есть ключа сеанса) - это две разные вещи. И, конечно же, убедитесь, что memcached действительно остановлен.
Что касается того, что часть может войти в систему даже с остановленным memcached, убедитесь, что вы удалили все файлы cookie для домена (localhost) и перезапустили сервер рельсов после внесения изменений. Кроме того, удалите каталог tmp/cache.
PS. Если вы не видите ошибку DalliError: No server available
, значит, memcached, вероятно, все еще работает где-то. Попробуйте получить доступ к memcached через Dalli через консоль Rails и посмотреть, можете ли вы хранить/получать данные.
ПФС. Если вы видите файлы, хранящиеся в tmp (например, tmp/cache/D83/760/_session_id% 3A4d65e5827354d0e1e8153a4664b3caa1), это означает, что Rails возвращается в FileStore для хранения данных сеанса.