我有一个新的RoRs应用程序。它有一个页面和这些配置:
routes.rb
Rails.application.routes.draw do
get 'welcome' => 'mypages#home'
my_pages_controller.rb
class MyPagesController < ApplicationController
def home
end
end
当我在localhost:3000/welcome上运行应用程序时,我会收到以下错误:
路由错误
未初始化常量MypagesController
知道怎么了吗?
localhost:3000加载没有问题。
你应该匹配你的下划线和camelCasing of classes:
CCD_ 1将与名为CCD_ 2的控制器相匹配。
get 'welcome' => 'mypages#home'
将匹配名为MypagesController
的控制器
当你有这个路线时:
get 'welcome' => 'mypages#home'
默认情况下,Rails将查找MypagesController
的home
操作。但是,在您的情况下,您实际上并没有一个具有该名称的控制器。这就是为什么你会犯这个错误。
理想情况下,您应该将您的路线更改为:
get 'welcome' => 'my_pages#home'
然后,Rails将查找MyPagesController
,它将与您现有的控制器相匹配,并且您的代码将起作用。
或者,(在这种情况下不推荐),您可以在路由中使用:controller
选项来告诉Rails应该在哪个控制器中找到home
操作:
get 'welcome' => 'mypages#home', controller: "my_pages"
这也行得通。