2014-10-19 99 views
0

在的routes.rb文件:root "pages#index"根路徑不工作

pages_controller.rb文件

class PagesController < ApplicationController 
    def index 
     render 'home' 
    end 

    def about 
    end 
    end 

視圖中命名​​

rake routes回報

Prefix Verb URI Pattern  Controller#Action 
    home GET /home(.:format) pages#home 
    about GET /about(.:format) pages#about 

本地主機只是說:「我們對不起,但有些事情發生了榮「,控制檯說:ActionController::RoutingError (No route matches [GET] "/home"):

On Rails的4.2.0.beta2

*編輯爲Rails版本和控制檯錯誤

+0

什麼是錯誤? – Nithin 2014-10-19 16:02:45

+0

哪個版本的導軌? – JTG 2014-10-19 16:12:44

+0

@nithin localhost只是說:「我們很抱歉,但出了問題。」,控制檯說:「ActionController :: RoutingError(沒有路由匹配[GET]」/ home「):' – Jadam 2014-10-19 18:48:16

回答

1

事實上,rake routes說,一個GET /home將匹配pages#home,在家裏行動頁面控制器。

您能告訴我們更多關於您的routes.rb文件嗎?

而且,你爲什麼不重命名home.html.haml文件index.html.haml文件,因此你的索引行動可以成爲

def index 
end 

如果不指定視圖渲染,Rails會嘗試使用您的動作名稱查找視圖。

0

我會更新你的routes.rb文件:

root 'pages#index' 

get '/home', to: 'pages#index' 
get '/about', to: 'pages#about' 

正如本傑明建議,我認爲這將是一個更好的設計來重命名home.html.erb到index.html.erb 。這樣,您可以從索引方法中刪除render 'home'

奇怪的是,您的rake routes輸出表示/ home將被重定向到pages#home,這是您沒有的控制器方法。