Я могу читать, но не устанавливать куки в моем приложении rails - PullRequest
2 голосов
/ 04 января 2009

Это самая странная вещь. Когда я вчера запускал отладчик Rails WEBrick, я мог делать что-то вроде

cookies[uid] = s.session_id

где 'uid' - это переданный аргумент, в котором есть идентификатор пользователя, а затем ожидать

cookies[uid]

чтобы вернуть меня, скажи:

29b93443d9ec18168a26e1ab12957b0dd0b799ff

Сегодня я всегда возвращаюсь «ноль». Я могу читать существующие значения просто отлично. Любой из ключей, перечисленных в

cookies.keys

отлично работает.

Есть ли у кого-нибудь возможное объяснение этому поведению. Это очень невыносимо, и поиск в Google не дал ответа.

Ответы [ 2 ]

4 голосов
/ 04 января 2009

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

cookies[:key]

в отладчике, кажется, всегда дает вам значение cookie, как оно было прочитано из браузера. Я не знаю, где хранится значение, но проверка файлов cookie в браузере подтверждает, что мои изменения действительно присутствуют. Полезно, что cookie [: key] возвращает значение назначения, так что вы, вероятно, могли бы сделать что-то вроде

@future_value = cookies[:key] = {
                                 :value => 'new value',
                                 :expires => @really_soon
                                }

Я не знаю, что заставило меня думать, что я мог видеть их раньше!

1 голос
/ 24 января 2009

Кроме того, вам нужно читать куки, используя строку, а не символ, поскольку Rails преобразует ключи в строки при их установке.

cookies[:key] = "value"
cookies[:key]  # => nil
cookies['key'] # => "value"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...