Как хранить несколько значений в одном файле cookie в Ruby on Rails? - PullRequest
3 голосов
/ 03 марта 2011

Я учусь работать с файлами cookie в Ruby on Rails. Все, что я знаю, это как установить имя и значение файла cookie, но я хочу сохранить еще три поля. Так что любые советы или хорошие учебники будут оценены!

Спасибо за любую помощь.

Ответы [ 3 ]

5 голосов
/ 03 марта 2011

Cookies по определению состоят из одной пары имя / значение, где оба поля являются текстовыми.Вам действительно следует использовать три отдельных файла cookie для хранения отдельных значений.

cookies["value_1"] = "one"
cookies["value_2"] = "two"
cookies["value_3"] = "three"

Если по какой-либо причине вы не можете или не хотите иметь более одного файла cookie, вы можете поместить разные значения вместе сразделитель (произвольный текст, такой как ~~ в следующем примере):

value_1 = "one"
value_2 = "two"
value_3 = "three"
cookies["multiple_values"] = "#{value_1}~~#{value_2}~~#{value_3}"

Но в этом случае вам придется анализировать cookie-файл обратно, получая значения путем разделения значения cookie-файла с использованием текста разделителя.Однако есть опасность, что однажды правильное значение будет содержать ваш разделитель и разрушит процесс анализа.

1 голос
/ 03 марта 2011

Лучший вариант в этом случае - использовать сеанс на стороне сервера для хранения трех значений и позволить куки быть просто ссылкой на этот сеанс.На стороне клиента у вас будет только одно значение (сеанс, идентифицируемый каким-либо UUID), а на сервере вы можете иметь столько значений, сколько захотите в памяти.

0 голосов
/ 13 марта 2014

Вы можете присвоить массив cookie в рельсах с помощью

cookies[:my_array] = [12, 1234]

и прочитайте массив

cookies[:my_array]   # => [12, 1234]

http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html

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