Rails "warning: already initialized constant ActiveRecord::Base::OrmAdapter" エラーの対処
開発環境
OS X 10.9.5 rails 4.1.6 ruby 2.1.0
問題
Railsのバージョンを4.2.0から4.1.6に切り替えたのちに、
$ bundle exec rails c
をしたところ、
"warning: already initialized constant ActiveRecord::Base::OrmAdapter" "warning: previous definition of OrmAdapter was here"
などのエラーが出た。
結論
$ bundle exec rake rails:update
で解決。
経緯
$ rails new をしたときは rails 4.2.0 だったが、その後Gemfileを
gem 'rails', '4.2.0' ↓ gem 'rails', '4.1.6'
と書き換えて bundle install。
この後、rails c をしたところエラーが発生した。
対処
参考サイト
Rails server not running due to ORM Adapter · Issue #36 · ianwhite/orm_adapter · GitHub
どうやら、Gemfileをいじって bundle install するだけではだめで、rakeのほうでも変更を反映させる必要があるらしい。
$ bundle exec rake rails:update
このコマンドを実行すると、以下の様なコンフリクトが発生する。
conflict config/boot.rb conflict config/application.rb conflict config/secrets.yml conflict config/environments/development.rb conflict config/environments/production.rb conflict config/environments/test.rb conflict config/initializers/assets.rb conflict config/initializers/cookies_serializer.rb conflict config/initializers/session_store.rb conflict bin/rails conflict bin/rake
すべてyesでポチポチエンターを押していけば問題ない。 これで解決。