当前位置: 动力学知识库 > 问答 > 编程问答 >

ruby - Unable to perform automatically routes file upgrade (rails-upgrade)

问题描述:

I've got Rails2 application and I'm trying to upgrade it to Rails3 (plugin: https://github.com/rails/rails_upgrade).

Everything was fine till step of routes file upgrade. When I've tried to use rake rails:upgrade:routes following error displayed:

 /home/chmarus/.rvm/gems/[email protected]/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

Destination ver: 3.0.3

What is worng? May I missed something? Maybe it's rake fault, but I'm not sure.

Edit: rake rails:upgrade:routes --trace

[email protected]:~/Pulpit/mmo$ rake rails:upgrade:routes --trace

/home/chmarus/.rvm/gems/[email protected]/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/[email protected]/gems/rake-0.8.7/lib/rake.rb:636:in `call'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:631:in `each'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:631:in `execute'

/home/chmarus/.rvm/gems/[email protected]/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/[email protected]/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2029:in `each'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/lib/rake.rb:1998:in `run'

/home/chmarus/.rvm/gems/[email protected]/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'

/home/chmarus/.rvm/gems/[email protected]/bin/rake:19:in `load'

/home/chmarus/.rvm/gems/[email protected]/bin/rake:19:in `<main>'

网友答案:

That error is occurring when it parses your routes.rb file. Look out for the now keyword in config/routes.rb. See https://github.com/rails/rails_upgrade/blob/master/lib/routes_upgrader.rb#L38 line 47.

If you don't see the call to now or don't know how to fix it from there, edit the question and post your routes.rb file, leave a comment, and we can take a closer look.

分享给朋友:
您可能感兴趣的文章:
随机阅读: