2012-09-24 93 views
0

所以我有點Rails n00b,所以我會道歉,如果這很簡單。當我從另一臺計算機訪問我的服務器,我得到這個消息:沒有路線匹配[GET]「/」..有時候

沒有路由匹配[GET]「/」

如果我嘗試去我的子頁面(當然,目前只有我有一個),我得到的東西沿着這些路線:

未知的動作

行動「索引」無法找到AwebpageController

但這裏有一個問題:這種情況有時會發生。剩下的時間,標準的RoR主頁加載,然後轉到wwww.mydomain.com/awebpage提供正確的頁面。

我的routes.rb看起來是這樣的:

Wobsite::Application.routes.draw do 
    resources :awebpage 
end 

而且awebpage_controller.rb看起來是這樣的:

class AwebpageController < ApplicationController 
end 

是的,index.html.erb爲Awebpage確實存在。這很簡單,我不明白髮生了什麼問題。哦,和我的網絡服務器是瘦(不知道這是否重要)。預先感謝任何幫助!

回答

2

你可能想要將它添加到你的路由文件,爲您的網站默認的控制器和頁面(即http://www.mysite.com/)的頂部:

root :to => "AwebpageController#index"

要刪除on Rails的網頁,你默認的Ruby還想刪除/public/目錄中的index.html文件。

此外,儘管不是必需的,但在您的控制器中,您缺少索引的函數定義。

class AwebpageController < ApplicationController 
    def index 
    end 
end 

通常情況下,您會執行應用程序邏輯並提供此功能的視圖;但是,如果您不做任何事情,RoR會自動加載與頁面關聯的視圖(index.html.erb)。

如果畢竟這仍然有問題,也許明確地將index添加到您的路線文件中的AwebpageController;也許rails只映射www.mysite.com/Awebpage/Awebpage/index而不是www.mysite.com/Awebpage/index

+0

我讀過,如果你甚至沒有定義它,Rails會做同樣的事情(即加載視圖)。這是錯的嗎?畢竟,它有時會起作用。無論如何,這仍然沒有解決爲什麼我得到一個路由錯誤到我的網站的根。 –

+0

你應該不需要函數定義和明確路由。如果你已經將'root'聲明添加到你的路由文件中,並且你仍然遇到問題,我唯一能想到的就是明確告訴Rails該做什麼。 –