如何将rails app从2.2.2升级到2.3.11?

kru*_*hah 9 ruby-on-rails

我已经安装了rails.2.3.11并运行rake rails:upgrade.

我是否需要修改文件?

kru*_*hah 13

将Rails 2.2.2升级到2.3.11的步骤.

  1. rails install -v=2.3.11

  2. 修改 config/environment.rb

    RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行rake task => rake rails:update # Update configs, scripts and javascripts

    此rake任务将修改一些文件.

  4. 修改 config/environment.rb

    更换

    config.action_controller.session = {
      :session_key => '_name_session',
      :secret      => 'asdfasfasfafafafadaseerweewr'
    }
    
    Run Code Online (Sandbox Code Playgroud)

    config.action_controller.session = {
      :key => '_name_session',
      :secret      => 'asdfasfasfafafafadaseerweewr'
    } 
    
    Run Code Online (Sandbox Code Playgroud)
  5. 修改 app/controllers/application_controller.rb

    更换

    session :session_key => '_intrado_session_id'
    
    Run Code Online (Sandbox Code Playgroud)

    #session :session_key => '_intrado_session_id'
    
    Run Code Online (Sandbox Code Playgroud)
  6. 更换

    session.session_id
    
    Run Code Online (Sandbox Code Playgroud)

    request.session_options[:id]
    
    Run Code Online (Sandbox Code Playgroud)

可能这会有所帮助......

编辑:

Rails 2.3.11 + Rack 1.0.0 + Phusion Passenger 2.0.6导致问题500内部服务器错误未定义方法'倒带'来解决该问题.

我安装了.

  1. sudo gem install rack -v=1.1.1

  2. sudo gem install passenger -v=2.2.8

  3. passenger-install-apache2-module

在第3步安装结束时,它会提示您在/etc/httpd/conf/httpd.conf中用以下代码替换几行

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8
PassengerRuby /usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)

该文件已经有三行以上.因此,用2.2.8替换2.0.6就足够了.

执行上述步骤后,通过以下命令重启apache2并重启rails.

  1. sudo /etc/init.d/http.d restart
  2. cd /var/www/project_name
  3. sudo touch tmp/restart.txt