cookiesのリファレンスにある具体例には以下のようにあります。
cookiesのリファレンスにある具体例 |
---|
#実装してみると・・・
例にならってcookiesに配列を代入します。
cookies[:hoge] = [1,2]
これを参照しようとすると、
要素にjoin("&")したような形で文字列になって返ってきます。
配列として扱えない。
cookies[:hoge] #=> "1&2"
そのため、このまま使うならsplit("&")のような処理をしてarrayで処理するか、
そもそもarrayで保存せずにstringで保存してjoin(",")など任意の文字で配列に変換できる文字列を保存するかになるのですが、
これだと、join(",")からjoin("-")などに変更すると、
すでにユーザーのクッキーに前の状態のデータ(join(",")
などで生成した文字列)が保存されていると、
そのための処理が必要になります。
なので、ここはJSON.parseしてしまいましょう。
#JSON.parseでの実装
配列の代入
my_array = [1,2]
cookies[:hoge] = JSON.generate(my_array)
参照
JSON.parse(cookies[:hoge])
stackoverflowなどを見ると、配列にjoin(",")
して文字列で保存して変換して使う方法も書いてありますが、
私はこちら推しです