Session換頁之後, 商品沒有紀錄上去
查了之後發現是 From for 在新增商品沒 CSRF的auth code沒有新增
造成對應不到Session
所以每次新增商品時 都會重新開一個Session
所以造成購物車的商品不會累加
另外
由於Session裡面存的是購物車的是一個ruby物件
所以如果用 cookie store 由於 cookie無法儲存物件
所以用cookie會失敗
這個是由在Rails 4.1 之後的更新所做的修正
可參考 1. http://guides.rubyonrails.org/upgrading_ruby_on_rails.html 2. http://blog.plataformatec.com.br/2014/04/3-features-from-rails-4-1-that-im-excited-about/
之前Rails可以將Ruby物件放在Cookie的原因是他使用了 Marshal.dump and Marshal.load 來做物件的serialized (and deserialized)
但是由於這種做法,假如hacker如果拿到你的cookie加密的key就可以從你的cookie 解密出你存在裡面的物件, 所以降低了網站的安全性
因此Rails 4.1的更新, 讓Cookie只能儲存一些簡單的資料, 例如:string, integer, hash, array等 複雜物件就無法儲存
但也不是無法儲存, 只是物件的serialized (and deserialized) 就必須自己做了