2012-01-07 6 views
9

Как сохранить данные массива с несколькими массивами в файл cookie.Как сохранить массив в файл cookie?

Например: [[1, 'foo'], [2, 'bar'], [3, 'foobar']]

я могу заставить его работать с одномерным массивом как таковые:

cookies[:foobar] = { :value => cookies[:foobar] << ",1" } 

, а затем сделать

cookies[:foobar].split(',').include?("1") 

Чтобы убедиться, что 1 существует внутри печенье. Не слишком уверен, как я могу обойти это с помощью многомерного массива.

ответ

12

Сериализовать массив в json и хранить файлы cookie.

Посмотрите на два метода:

ActiveSupport::JSON.encode(object) 
ActiveSupport::JSON.decode(string) 
+0

Хммм, не Rails печенье декодирования данных уже? Рассмотрим: 'cookies [: test] = {: value => ActiveSupport :: JSON.encode ({: color => [" red "," green "," yellow "]}),: expires => 24.hours. from_now} 'возвращает' {"color" => [красный, "зеленый", "желтый"]} '. Мне не нужно расшифровывать? –

+0

Я думаю, вам всегда нужно декодировать строковые данные в объект массива. – 4ndrew

1

Самый простой способ, вероятно, использовать один из методов сериализации: рельсы/рубины, такие как YAML, marshalling или json.

Смежные вопросы