2015年2月24日 星期二

Devise Issue: “[17] is not a symbol” [duplicate]

若是升級devise 時, 在舊版與新版中切換, 會碰上一個error:

is not a symbol” [duplicate]

原因是 devise 版本不同, 造成的 session 內容不同.

For devise<=2.2.3,
session["warden.user.player.key']=["Player", [player_id], "somehashhere"]

For devise>=2.2.4
session["warden.user.player.key']=[[player_id], "somehashhere"]

若是要舊版兼容新版, 就必須在 application_controller 加入下列code :

before_filter :fix_session def fix_session key = session["warden.user.player.key"] if key && key.is_a?(Array) && key[0].is_a?(Array) session["warden.user.player.key"].unshift('Player') end end 

參考來源

【下列文章您可能也有興趣】

沒有留言: