我有一个新的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加载没有问题。
答案 0 :(得分:2)
你应该匹配你的下划线和camelCasing类:
get 'welcome' => 'my_pages#home'
将匹配名为MyPagesController
的控制器。
get 'welcome' => 'mypages#home'
将匹配名为MypagesController
答案 1 :(得分:2)
当你有这条路线时:
get 'welcome' => 'mypages#home'
默认情况下,Rails会查找MypagesController
的{{1}}操作。但是,在你的情况下,你真的没有一个具有该名称的控制器。这就是你得到这个错误的原因。
理想情况下,您应该改变您的路线:
home
然后,Rails将查找与您现有控制器匹配的get 'welcome' => 'my_pages#home'
,您的代码将起作用。
或者,(在这种情况下不推荐使用),您可以在路由中使用MyPagesController
选项告诉Rails应该在哪个控制器中找到:controller
操作:
home
这也可以。