无法自动执行路由文件升级(rails-upgrade)

时间:2012-04-29 22:44:03

标签: ruby-on-rails ruby ruby-on-rails-3 rake

我有Rails2应用程序,我正在尝试将其升级到Rails3(插件:https://github.com/rails/rails_upgrade)。

一切都很好,直到路线文件升级步骤。当我尝试使用rake rails:upgrade:routes显示以下错误时:

    /home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake/alt_system.rb:32: Use RbConfig instead of obsolete and deprecated Config.
    (in /home/chmarus/Pulpit/mmo)
    WARNING: This version of mysql2 (0.3.11) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
    WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
    DEPRECATION WARNING: config.action_controller.session= has been deprecated. Please use config.session_store(name, options) instead. (called from <class:Application> at /home/chmarus/Pulpit/mmo/config/application.rb:54)
    DEPRECATION WARNING: Rake tasks in /home/chmarus/Pulpit/mmo/vendor/plugins/event_calendar/tasks/event_calendar_tasks.rake are deprecated. Use lib/tasks instead. (called from <top (required)> at /home/chmarus/Pulpit/mmo/Rakefile:7)
    rake aborted!
    undefined method `now' for nil:NilClass

    (See full trace by running task with --trace)

Current Rails ver:2.3.9 目的地版本:3.0.3

什么是狼?我可能错过了什么?也许这是耙错,但我不确定。

编辑:rake rails:upgrade:routes --trace

chmarus@Arti:~/Pulpit/mmo$ rake rails:upgrade:routes --trace
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake/alt_system.rb:32: Use RbConfig instead of obsolete and deprecated Config.
(in /home/chmarus/Pulpit/mmo)
WARNING: This version of mysql2 (0.3.11) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
DEPRECATION WARNING: config.action_controller.session= has been deprecated. Please use config.session_store(name, options) instead. (called from <class:Application> at /home/chmarus/Pulpit/mmo/config/application.rb:54)
DEPRECATION WARNING: Rake tasks in /home/chmarus/Pulpit/mmo/vendor/plugins/event_calendar/tasks/event_calendar_tasks.rake are deprecated. Use lib/tasks instead. (called from <top (required)> at /home/chmarus/Pulpit/mmo/Rakefile:7)
** Invoke rails:upgrade:routes (first_time)
** Execute rails:upgrade:routes
rake aborted!
undefined method `now' for nil:NilClass
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/routes_upgrader.rb:47:in `module_eval'
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/routes_upgrader.rb:18:in `draw'
(eval):1:in `upgrade_routes'
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/routes_upgrader.rb:47:in `module_eval'
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/routes_upgrader.rb:47:in `upgrade_routes'
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/routes_upgrader.rb:28:in `generate_new_routes'
/home/chmarus/Pulpit/mmo/vendor/plugins/rails_upgrade/lib/tasks/rails_upgrade_tasks.rake:29:in `block (3 levels) in <top (required)>'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain'
/home/chmarus/.rvm/rubies/ruby-head/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/chmarus/.rvm/gems/ruby-head@rails3/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'
/home/chmarus/.rvm/gems/ruby-head@rails3/bin/rake:19:in `load'
/home/chmarus/.rvm/gems/ruby-head@rails3/bin/rake:19:in `<main>'

1 个答案:

答案 0 :(得分:1)

解析routes.rb文件时发生错误。请注意config / routes.rb中的now关键字。见https://github.com/rails/rails_upgrade/blob/master/lib/routes_upgrader.rb#L38第47行。

如果您没有看到now的来电或者不知道如何从那里修复它,请编辑问题并发布routes.rb文件,发表评论,我们可以更加接近看。