我正在學習如何在Ruby on Rails中使用Cookie。我所知道的是如何設置cookie的名稱和價值,但我想存儲多達三個字段。所以任何提示或好的教程將不勝感激!如何在Ruby on Rails中的一個cookie中存儲多個值?
感謝您的任何幫助。
我正在學習如何在Ruby on Rails中使用Cookie。我所知道的是如何設置cookie的名稱和價值,但我想存儲多達三個字段。所以任何提示或好的教程將不勝感激!如何在Ruby on Rails中的一個cookie中存儲多個值?
感謝您的任何幫助。
根據定義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值來檢索值。然而,有一天有一個合適的值會包含你的分隔符並破壞解析過程。
在這種情況下,它最好的選擇是使用服務器端會話來存儲三個值,並讓cookie只是該會話的引用。 在客戶端,您將只有一個值(會話由某種UUID標識),並且在服務器上,您可以在內存中獲得儘可能多的值。
你能精心製作這個嗎?我有類似的問題,並希望做到這一點 – wachichornia 2012-08-02 15:47:07
您可以
cookies[:my_array] = [12, 1234]
將數組分配到鐵軌一個cookie並讀取陣列
cookies[:my_array] # => [12, 1234]
http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html
謝謝!最後,我用兩種方法... – 2011-03-04 13:09:27