根据所有这些优秀的参考资料,我将旧的 Ruby (1.8.7) 和 Rails (2.2.2) 应用程序迁移到 Ruby (1.9.3) 和 Rails (3.2.12):
Rails 升级脚本
Rails 3 迁移博客
引导 Rails 3 应用程序
我能够启动应用程序的 Rails 服务器,但是当我通过浏览器访问应用程序时,然后是 BLAMMO!我收到服务器错误:
!!处理请求时出现意外错误:ActionController::Base:Class 的未定义方法 `session='
当我 grep -r for "session =" 我得到:
/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