Ruby on rails NameError:未初始化的常量ActionController::Dispatcher

Ruby on rails NameError:未初始化的常量ActionController::Dispatcher,ruby-on-rails,ruby,ruby-on-rails-3,rvm,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Rvm,Ruby On Rails 3.2,找到了一个类似的帖子,但我正在运行Mac,所以第一个解决方案并不完全适用,第二个解决方案不适用于我 使用ruby 1.9.3p0运行Mac OS 10.7.2、Xcode 4.2.1、rvm 1.10.1(2011-10-30修订版33570)[x86_64-darwin11.2.0] 我相信这个问题是由于rvm,但我不知道如何解决它 $ rails new dispatch_me $ rails generate controller demo index $ rails console L

找到了一个类似的帖子,但我正在运行Mac,所以第一个解决方案并不完全适用,第二个解决方案不适用于我

使用ruby 1.9.3p0运行Mac OS 10.7.2、Xcode 4.2.1、rvm 1.10.1(2011-10-30修订版33570)[x86_64-darwin11.2.0]

我相信这个问题是由于rvm,但我不知道如何解决它

$ rails new dispatch_me
$ rails generate controller demo index 
$ rails console
Loading development environment (Rails 3.2.0.rc2)
1.9.3-p0 :001 > env = {}
 => {} 
1.9.3-p0 :002 > env['REQUEST_METHOD'] = 'GET'
 => "GET" 
1.9.3-p0 :003 > env['PATH_INFO'] = '/demo/index'
 => "/demo/index" 
1.9.3-p0 :004 > env['rack.input'] = StringIO.new
 => #<StringIO:0x007f946db0ece0> 
1.9.3-p0 :005 > ActionController::Dispatcher.new.call(env).last.body
NameError: uninitialized constant ActionController::Dispatcher
from (irb):5
from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.0.rc2/lib/rails/commands/console.rb:47:in `start'
from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.0.rc2/lib/rails/commands/console.rb:8:in `start'
from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/railties-    3.2.0.rc2/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
1.9.3-p0 :006 > 

看起来您正在使用的rails版本中根本不存在
ActionController::Dispatcher
。如果您在阅读一本书,通常最好坚持使用该书所针对的Rails版本。

看看config.ru,在我的例子中是:

> cat config.ru 
# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Wagn::Application
该文件是使用Main::Application为3.0生成的,它已更改为我们的本地名称

我将其用于我的应用程序(Rack::Test):


注意没有“.new”,因为这个类是一个应用程序,而不是一个中间件。

知道用什么来代替它吗?在ActionDispatch下是否有相对映射?
> cat config.ru 
# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Wagn::Application
def app
  Wagn::Application
end