我正在学习如何使用Ruby on Rails中的cookie。我所知道的是如何设置cookie的名称和值,但我想存储多达三个字段。所以任何提示或好的教程都将不胜感激!
感谢您的帮助。
答案 0 :(得分:5)
根据定义,Cookie由单个名称/值对组成,其中两个字段都是文本。您应该使用三个单独的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 :(得分:1)
在这种情况下,最好的选择是使用服务器端会话来存储三个值,并让cookie只是对该会话的引用。 在客户端,您将只有一个值(由某种UUID标识的会话),并且在服务器上,您可以在内存中拥有任意数量的值。
答案 2 :(得分:0)
您可以使用
将数组分配给rails中的cookiecookies[:my_array] = [12, 1234]
并读取数组
cookies[:my_array] # => [12, 1234]
http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html