Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么是未初始化常量?_Ruby On Rails - Fatal编程技术网

Ruby on rails 什么是未初始化常量?

Ruby on rails 什么是未初始化常量?,ruby-on-rails,Ruby On Rails,我有一个新的RoRs应用程序。它有一个页面和以下配置: routes.rb Rails.application.routes.draw do get 'welcome' => 'mypages#home' my_pages_controller.rb class MyPagesController < ApplicationController def home end end class MyPagesController“my_pages#home”将匹配

我有一个新的RoRs应用程序。它有一个页面和以下配置:

routes.rb

Rails.application.routes.draw do
  get 'welcome' => 'mypages#home'
my_pages_controller.rb

class MyPagesController < ApplicationController
    def home
    end
end
class MyPagesController
当我在localhost:3000/welcome上运行应用程序时,出现以下错误:

路由错误

未初始化常量MypagesController

你知道怎么了吗


localhost:3000次加载,没有问题。

您应该匹配下划线和类的大小写:

获取“欢迎”=>“my_pages#home”
将匹配名为
MyPagesController
的控制器


获取“欢迎”=>“mypages#home”
将匹配名为
MypagesController

的控制器,当您有以下路径时:

get 'welcome' => 'mypages#home'
默认情况下,Rails将查找MypagesController的
home
操作。但是,在您的情况下,您实际上没有一个具有该名称的控制器。这就是为什么你会犯这样的错误

理想情况下,您应该将路线更改为:

get 'welcome' => 'my_pages#home'
然后,Rails将查找与现有控制器匹配的
MyPagesController
,您的代码将正常工作

或者,(在这种情况下不推荐),您可以在路线中使用
:controller
选项告诉Rails应该在哪个控制器中找到
主页
操作:

get 'welcome' => 'mypages#home', controller: "my_pages"

这也行。

MypagesController的文件名是什么?