2013-02-19 88 views
2

我將舊的Ruby(1.8.7)和Rails(2.2.2)應用程序遷移到Ruby(1.9.3)和Rails(3.2 0.12)以下所有這些優秀的參考資料:遷移到Rails 3.2 - 未定義的方法'會話='爲ActionController :: Base:類

Rails Upgrade Script
Rails 3 Migration Blog
Booting the Rails 3 App

我能夠啓動應用程序的Rails的服務器,但是當我通過瀏覽器,然後BLAMMO訪問的應用程序!我得到一個服務器錯誤:

!!意外的錯誤在處理請求:對的ActionController :: Base的未定義的方法`會話=」:類

當我用grep -r爲 「會話=」 我得到:

/var/www/vendor_sandbox/config/application.rb: config.action_controller.session = { 
/var/www/vendor_sandbox/config/environment.rb.rails2: config.action_controller.session = { 
/var/www/vendor_sandbox/destroy/config/environment.rb: config.action_controller.session = { 
/var/www/vendor_sandbox/generate/config/environment.rb: config.action_controller.session = { 

根據谷歌搜索那個錯誤,這是Rails 2的一個老問題,所以我想知道如果我在遷移過程中遺漏了某些東西,或者這是其他東西。由於

這裏是我的終端會話活動:

[email protected]:/var/www/vendor_sandbox# ruby -v 
ruby 1.9.3p385 (2013-02-06 revision 39114) [i686-linux] 
[email protected]:/var/www/vendor_sandbox# rails --version 
Rails 3.2.12 
[email protected]:/var/www/vendor_sandbox# rails s 
=> Booting Thin 
=> Rails 3.2.12 application starting in development on  http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 

>> Thin web server (v1.5.0 codename Knife) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:3000, CTRL+C to stop 

然後,我從一個瀏覽器中點擊應用和:

!! Unexpected error while processing request: undefined method `session=' for ActionController::Base:Class 
+0

您曾經可以說會話:關閉會話(這些日子不需要),但沒有看到代碼只是猜測 – 2013-02-19 15:00:29

+0

好。我會仔細研究「會話」,看看會發生什麼。謝謝 – Slinky 2013-02-19 15:29:29

+0

@Frederick - 查看我的更新 – Slinky 2013-02-19 16:11:10

回答

6

嘗試使用config.session_store代替。您必須指定商店類型,最有可能的是:cookie_store。下面是它看起來像在你的application.rb

config.session_store(:cookie_store, {:key => foo, :secret => bar}) 

不管你選擇了後session=將散列裏面去那裏的例子。

+0

這就是解決方案。謝謝。我將語法從「config.action_controller.session = {...}」更改爲更新的語法。一切都好。 – Slinky 2013-02-19 16:39:02

相關問題