2012-01-07 18 views
9

どのようにしてマルチアレイタイプのデータをクッキーに保存しますか?例えばアレイをクッキーに保存する方法は?

[[1, 'foo'], [2, 'bar'], [3, 'foobar']]

私はそれのような1次元配列で動作するように取得することができます。その後、

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

1が内側に存在することを確認するには

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

を行いますクッキー。どのように多次元配列でこの問題を回避できるかわからない

答えて

12

アレイをjsonにシリアル化し、クッキーに保存します。二つの方法で

ルック:

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

うーむは、Railsのクッキーは、すでにデータをデコードしないのですか?次のことを考慮してください: 'クッキー[:テスト] = {:値=> ActiveSupport :: JSON.encode({:color => ["赤 "、"緑 "、"黄 "]})::expires => 24.hours。 from_now} '' {"color" => [red、 "green"、 "yellow"]} 'を返します。私はデコードする必要はありませんか? –

+0

文字列データを常に配列オブジェクトにデコードする必要があると思います。 – 4ndrew

1

おそらく最も簡単なのは、YAML、マーシャリングまたはjsonのようなrails/ruby​​の提供する直列化メソッドの1つを使用することです。

関連する問題