2012-01-14 128 views
1

发现了一个类似的帖子here但我运行的是Mac,所以第一个解决方案并不完全适用,第二个解决方案对我没有任何作用。NameError:未初始化的常量ActionController :: Dispatcher

使用红宝石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 > 

我与The Rails 3 Way

以下同样,我认为这个问题与RVM到期,但我不知道如何解决它?

UPDATE: 也许它没有事做RVM,运行原生Ruby 1.8.7和Rails 3.1.3我碰到了同样的问题:

>> ActionController::Dispatcher.new.call(env).last.body 
NameError: uninitialized constant ActionController::Dispatcher 
    from (irb):6 

回答

2

看看config.ru,在我的情况下,它是:3.0与主::应用生成

> 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 

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

1

它看起来ActionController::Dispatcher只是没有按” t存在于您正在使用的导轨版本中。如果你遵循一本书,通常最好坚持写这本书的Rails版本。

+1

任何想法用什么来代替它?它在ActionDispatch下有相对映射吗? – 2012-02-03 20:04:01

相关问题