rails 3 rake routes not working, no routes shown a

2019-08-16 01:56发布

问题:

When I execute

bundle exec rake routes --trace

the output is:

NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:84.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:84.
WARNING: 'require 'rake/rdoctask'' is deprecated.  Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
** Invoke routes (first_time)
** Invoke environment (first_time)
** Invoke threadsafe:disabled (first_time)
** Execute threadsafe:disabled
** Execute environment
** Execute routes

and here is my config/routes.rb file

 Rails_app::Application.routes.draw do

  match '/' => 'pages#show', :id => '1-welcome-page'
  match       ':controller(/:action(/:id(.:format)))'

end

Here is my gem list

abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
arel (2.0.10)
builder (3.0.0, 2.1.2)
bundler (1.0.10 ruby)
cgi_multipart_eof_fix (2.5.0)
daemons (1.1.0, 1.0.10)
erubis (2.6.6)
eventmachine (0.12.10)
fastthread (1.0.7)
gem_plugin (0.2.3)
i18n (0.6.0)
kgio (2.2.0)
mail (2.2.19)
mime-types (1.17.2)
mongrel (1.2.0.pre2)
mysql2 (0.2.7)
polyglot (0.3.3)
rack (1.2.5)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.3)
railties (3.0.3)
rake (0.9.2.2)
rmagick (2.13.1)
thin (1.2.7)
thor (0.14.6)
treetop (1.4.10)
tzinfo (0.3.31)
unicorn (3.4.0)
xmpp4r (0.5)

Does anyone know why no routes are produced?

回答1:

It seem according this question getting error while creating rails app? taht you should update your bundler version



回答2:

Wow, I finally got the routes working. I think part of the problem was that the app was a Rails 2 app that had been converted into a Rails 3 app. Anyway what I did was:

 1.  Made a simple Rails 3 app, and ran 'bundle exec rake routes' and I could see that that worked, so I knew the current set of libraries wasn't the problem.
 2.  Then I made the config files the same for both apps.
 3.  Also made the 'config/initializer' files the same for both apps.
 4.  Also made the 'config/environments/production.rb' file the same for both apps.
 5.  And that did the trick!

Once I had a simple Rails 3 app that worked for 'rake routes', I earlier tried running the debugger on rake routes for both of the apps:

 bundle exec rdebug rake routes

and stepped through a LOT of the code to see where the two apps took different paths, but since there was so much different between the two apps, I wasn't able to figure out where things were going wrong.

Anyway, I hope this helps someone who runs into the same problem.