2012-01-24 28 views
2

我的web應用程序使用機架1.4.0,西納特拉V1.2.6,薄v1.2.11,紅寶石v1.9.2p180錯誤與機架抓取基於會話cookie的

導航到頁面我在得到這個錯誤日誌:

TypeError - can't convert nil into String: 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/cookie.rb:152:in `hexdigest' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/cookie.rb:152:in `generate_hmac' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/cookie.rb:109:in `unpacked_cookie_data' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/cookie.rb:99:in `extract_session_id' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:43:in `load_session_id!' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:32:in `[]' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:262:in `current_session_id' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:268:in `session_exists?' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:107:in `exists?' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:122:in `load_for_read!' 
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.0/lib/rack/session/abstract/id.rb:59:in `[]' 
/var/www/phrogz.net/routes/test.rb:8:in `logged_in?' 

中的代碼test.rb 8號線是:

session[ :foo ] == "BAR" 

什麼升級/降級來解決這個問題有什麼建議?

+1

會話[:foo]是否存在?爲什麼不是session [:foo] && session [:foo] ==「BAR」 – three

+0

@three與該更改相同的錯誤(正如人們希望的那樣);不,在進行檢查時該會話變量不存在。 – Phrogz

回答

2

看起來像你遇到this issue。該修補程序位於Rack 1.4.1中,因此簡單升級應該修復它。

+0

已確認;更新Rack到1.4.1('sudo gem update rack')解決了這個問題。 – Phrogz