2012-09-24 56 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该做什么。 –