【问题标题】:How to store an array into a cookie?如何将数组存储到 cookie 中?
【发布时间】:2012-01-07 16:53:04
【问题描述】:

如何将多数组类型的数据存储到 cookie 中。

例如:[[1, 'foo'], [2, 'bar'], [3, 'foobar']]

我可以让它与一维数组一起工作:

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

然后做

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

验证1 是否存在于cookie 中。不太清楚如何使用多维数组解决这个问题

【问题讨论】:

    标签: ruby-on-rails-3 cookies


    【解决方案1】:

    将数组序列化为json并存储到cookies中。

    看两种方法:

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

    【讨论】:

    • 嗯,Rails cookie 不是已经解码数据了吗?考虑:cookies[:test] = { :value =&gt; ActiveSupport::JSON.encode({ :color =&gt; ["red", "green", "yellow"] }), :expires =&gt; 24.hours.from_now } 返回{"color"=&gt;[red, "green", "yellow"]}。我不需要解码?
    • 我认为您总是必须将字符串数据解码为数组对象。
    【解决方案2】:

    最简单的可能是使用 rails/ruby 提供的序列化方法之一,例如 YAML、编组或 json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多