Ruby on rails 什么是未初始化常量?
我有一个新的RoRs应用程序。它有一个页面和以下配置: routes.rbRuby 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”将匹配
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的文件名是什么?