2015-11-06 112 views
-5

我有一個新的RoRs應用程序。它有一個頁面,這些配置:什麼是未初始化常量?

的routes.rb

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

my_pages_controller.rb

class MyPagesController < ApplicationController 
    def home 
    end 
end 

當我運行在本地主機的應用程序:3000 /歡迎,我得到這個錯誤:

Routing Error

uninitialized constant MypagesController

任何想法是什麼錯?

localhost:3000加載沒有問題。

+1

「MypagesController」的文件名是什麼? –

回答

2

你應該使你下劃線和駝峯規則的類:

get 'welcome' => 'my_pages#home'將匹配一個名爲MyPagesController控制器。

get 'welcome' => 'mypages#home'將匹配一個名爲MypagesController

2

當你有這樣的路由控制器:

get 'welcome' => 'mypages#home' 

Rails會尋找默認MypagesControllerhome行動。但是,就你而言,你並沒有真正擁有這個名字的控制者。這就是爲什麼你得到這個錯誤。

你應該你的路線非常改成這樣:

get 'welcome' => 'my_pages#home' 

然後,Rails會尋找MyPagesController將配合您現有的控制器和您的代碼將工作。

或者,(在此情況下,雖然推薦),可以使用:controller選項在你的路線,告訴Rails在控制器應該找到home行動:

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

這工作了。

相關問題