在 Rails 应用程序中获取“未初始化的常量 ApplicationController”

4 ruby ruby-on-rails ruby-on-rails-4

我正在尝试学习Rails 4框架并遵循官方文档

我运行了以下命令:

rails new fold
Run Code Online (Sandbox Code Playgroud)

它创建了一个新项目

rails generate controller home index
Run Code Online (Sandbox Code Playgroud)

它生成一个home_controllerviews/home/index.html.erb

内容home_controller

class HomeController < ApplicationController
 def index
 end
end
Run Code Online (Sandbox Code Playgroud)

对于路由我添加了以下代码routes.rb

 get 'home/index' => 'home#index'
Run Code Online (Sandbox Code Playgroud)

运行应用程序后我得到:

uninitialized constant ApplicationController
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?这里是Stacktrace

app/controllers/home_controller.rb:1:in `<top (required)>'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:in `const_get'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:in `block in constantize'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in `each'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in `inject'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in `constantize'
actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:72:in `controller_reference'
actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:62:in `controller'
actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:41:in `serve'
actionpack (4.2.4) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:821:in `call'
Run Code Online (Sandbox Code Playgroud)

代码有什么问题吗?

小智 5

您有application.rb文件吗?该文件应该位于app/controllers内部。所有其他控制器都继承自该控制器。最小的设置如下所示:

class ApplicationController < ActionController::Base
end
Run Code Online (Sandbox Code Playgroud)