2

これらすべての優れたリファレンスに従って、古い Ruby (1.8.7) および Rails (2.2.2) アプリケーションを Ruby (1.9.3) および Rails (3.2.12) に移行しました。

Rails アップグレード スクリプト
Rails 3 Migration ブログ
Rails 3 アプリの起動

アプリの Rails サーバーを起動することはできますが、ブラウザー経由でアプリにアクセスすると、BLAMMO! サーバー エラーが発生します。

!! リクエストの処理中に予期しないエラーが発生しました: ActionController::Base:Class の未定義のメソッド `session='

"session =" に対して 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 = {

そのエラーのGoogle検索によると、これはRails 2の古い問題なので、移行プロセスで何かを見逃したのか、それとも別の問題なのか疑問に思っています。ありがとう

これが私のターミナルセッションアクティビティです:

root@partners:/var/www/vendor_sandbox# ruby -v
ruby 1.9.3p385 (2013-02-06 revision 39114) [i686-linux]
root@partners:/var/www/vendor_sandbox# rails --version
Rails 3.2.12
root@partners:/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
4

1 に答える 1

6

config.session_store代わりに使用してみてください。ほとんどの場合、ストアの種類を指定する必要があります:cookie_store。これはあなたの中でどのように見えるかの例ですapplication.rb

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

の後にどんなオプションがあったとしても、session=そこにそのハッシュの中に入ります。

于 2013-02-19T16:24:19.407 に答える