2010-10-16 64 views
0

我使用Rails應用程序中active_record_store這是在會議session[:email] = "[email protected]"軌session_store古怪行爲

存儲這個現在這款作品以動作罰款。但是,當這個動作得到了和被重定向到另一個頁面,該頁面還可以訪問相同的會話[:郵箱]我得到一個錯誤

undefined method `eq' for nil:NilClass 

這也許應該是指我試圖在一些地方,我是比較值不被允許。但我在代碼中看不到任何東西。

回答

0

這看起來像一個古老的問題,但我只是有同樣的問題,不得不自己弄清楚,並認爲我會在這裏發佈解決方案爲其他任何人遇到此問題。這不是很好的記錄,但要得到這個工作,你必須添加:

config.action_dispatch.session_store = :active_record_store 

到application.rb中,並

Application.config.session_store :active_record_store 

到config /初始化/ session_store.rb。然後,你要做的:

rake db:sessions:create 

和:

rake db:migrate 

然後,你必須重新啓動服務器的軌道。我認爲這是db:sessions:創建步驟,絆倒原始海報。這個數據庫表不得不按照rails所期望的方式進行佈局(也就是說,使用'id'列,這是導致此錯誤的實際原因,我認爲),而且當前會話必須有一個有效的ID。因此需要創建表並重新啓動服務器,或者如果存在的話可能會清空表。

+0

嘿...這裏的問題是表沒有ID列... – Amit 2011-01-31 19:10:43