2010-07-09 72 views
1

嘗試寫入/讀取名稱中包含方括號的cookie時,Rails似乎無法處理此問題。例如:在cookie名稱中使用括號(Rails)

cookies["example[]"] = "value" 

這會導致cookie名稱爲「example%5B%5D」而不是「example []」。同樣,如果我已經有一個cookie的名稱設置爲「例如[]」,然後好像Rails是無法通過調用cookies.delete "example[]"正確刪除它,因爲[]字符進行編碼。

任何人都知道如何解決這個問題?

+0

簡單的解決方案......不要在cookie的名稱中使用括號。 – Fosco 2010-07-09 19:14:43

+0

字符串轉義工作?例如。 「example \\ [\\]」? – Karl 2010-07-09 22:10:51

+0

@Karl - 遺憾的是沒有。 :( – 2010-08-17 16:49:43

回答

0

貌似這隻能通過hacking the Rails core來完成。糟糕的是Rails開發人員以這種方式實施它。

0

rfc沒有指定什麼都可以在一個cookie的名字。它所說的名稱必須是文本。我猜rails是編碼文本,因此括號變成了%5B%5D。我認爲最好避免Cookies中的這些字符。