Re: [心得] rails 2.3.3 是地雷?

看板Ruby作者 (godfat 真常)時間16年前 (2009/08/25 15:30), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《godfat (godfat 真常)》之銘言: : 雖然看到有幾個災情,我還是決定更新了 : 跑了一陣子之後,session 爆炸,居然每次 refresh 都會變另一個人... : 切回 2.3.2 後恢復正常了 : memcache: 異常 : database: 異常 : cookie: 根本無法正常啟動 rails : 我懶得花時間追蹤了,有人升級 rails 2.3.3 嗎? 我在換了另一樣東西後,發生一樣的事情... 於是開始追蹤原因,因為可能不是 rails 的問題。 沒想到一 log 就看到原因了: visitor_id = session[:cas_extra_attributes]['old_uid'] # what the hell? 我在最後註解 what the hell 是因為,傳進去的 key 明明就是 OldUID, 在 2.2.o 還是 2.o.o 的時候,就是寫 OldUID 就抓得到。 結果升級之後,爛掉,變成要寫成 old_uid. 抓到這個問題,讓我很火大。 所以才註解那段在那裡... 真的拜託不要亂動我的 key 啊。 現在我換了另一樣東西,OldUID 已經改成 id 了,因此出現一樣的狀況。 也就是說,visitor_id 變成 nil. 接著後面就是: user = User.new user.id = visitor_id # ... # user.save 這邊 user.id 是 nil, 然後又 save, 就變成 auto_increment, 自動取得了一個 id, 然後又用這個 id 去其他 server 查詢, 就會找到另一個已經存在的 user, 所以就變身了! 我猜 rails 2.3.3 大概就是把 session key 自動轉 key 拿掉了吧... 因此我的 session 又爛了。這邊需要注意的是,我不應該讓 id 是 nil 時, 也繼續跑程式。這樣在 rails 亂改的情況下,至少不會造成 session 亂跳。 -- #!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》 # if a dog nailed extra legs that http://www.ptt.cc/bbs/Ruby/index.html # walks like an octopus, and Welcome ~Ruby@ptt~ # talks like an octopus, then ◢█◣ http://www.ruby-lang.org/ # we are happy to treat it as http://www.ruby-doc.org/ # if it were an octopus. http://www.rubyforge.org/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.121.85

08/25 18:46, , 1F
2.3.3不能跑geo-kit plugin
08/25 18:46, 1F
文章代碼(AID): #1AavB_dM (Ruby)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1AavB_dM (Ruby)