【问题标题】:Rails app upgraded to Rails 3 on new system isn't using Mongrel在新系统上升级到 Rails 3 的 Rails 应用程序未使用 Mongrel
【发布时间】:2011-03-28 02:34:14
【问题描述】:

鉴于:

  • 当前正在升级到 rails 3 的 rails 2.3.x 应用程序。
  • 将 ruby​​ 从 1.8.7 升级到 1.9.2
  • rails 应用程序使用 mongrel 作为 Web 服务器进行开发。
  • 全新安装的 Ubuntu 10.10 Netbook remix。
  • 我忘记在开始升级之前安装 mongrel 所以...

问题:

在更新一些代码以使延迟的工作正常运行后,我运行rails s,我意识到我正在运行 WEBrick。我为 1.9.2 版本安装了 mongrel: gem install mongrel --pre 并再次运行 rails s。它仍在使用 WEBrick,这不是预期的行为。以前,我只需要安装 mongrel,rails 就会知道我需要 mongrel。

另外,当 WEBrick 运行时,我收到此错误...它启动,然后出错并关闭。 (可能是因为升级或者......也许 WEBrick 不喜欢 ruby​​ 1.9.2?):

=> Booting WEBrick
=> Rails 3.0.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/aaron/dev/onlinescheduler/config/initializers/new_rails_defaults.rb:14:in `<top (required)>': undefined method `generate_best_match=' for ActionDispatch::Routing:Module (NoMethodError)
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `load'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `block in load'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `load'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/engine.rb:201:in `block (2 levels) in <class:Engine>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/engine.rb:200:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/engine.rb:200:in `block in <class:Engine>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/initializable.rb:25:in `instance_exec'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/initializable.rb:25:in `run'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/initializable.rb:50:in `block in run_initializers'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/initializable.rb:49:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/initializable.rb:49:in `run_initializers'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/application.rb:134:in `initialize!'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/application.rb:77:in `method_missing'
    from /home/aaron/dev/onlinescheduler/config/environment.rb:5:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `block in require'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
    from /home/aaron/dev/onlinescheduler/config.ru:3:in `block in <main>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
    from /home/aaron/dev/onlinescheduler/config.ru:1:in `new'
    from /home/aaron/dev/onlinescheduler/config.ru:1:in `<main>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:162:in `app'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:213:in `start'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands/server.rb:65:in `start'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:30:in `block in <top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:in `tap'
    from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

【问题讨论】:

    标签: ruby-on-rails ruby-1.9.2 rails-3-upgrade


    【解决方案1】:

    如果加上会更好

    group :development do
      gem :mongrel
    end
    

    因为你在生产中不需要它

    【讨论】:

      【解决方案2】:

      您需要将gem "mongrel" 添加到您的Gemfile 并运行bundle install

      【讨论】:

        【解决方案3】:

        请记住,当您将 gem "mongrel" 添加到 Gemfile 时,您需要指定:

        gem "mongrel", "1.2.0.pre2"
        

        较新版本的 mongrel 与 Rails 3 不兼容。

        【讨论】:

          【解决方案4】:

          或者,如果您不想要 mongrel,我的理解是您可以将 new_rails_defaults.rb 中的违规行注释掉。当我这样做时,错误消息就会消失。

          【讨论】:

            【解决方案5】:

            尝试使用gem install mongrel --pre

            它对我有用!!!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-07-10
              • 1970-01-01
              • 1970-01-01
              • 2011-09-02
              • 1970-01-01
              • 2012-08-06
              • 1970-01-01
              • 2014-09-07
              相关资源
              最近更新 更多