0

所以我有点像Rails n00b,所以如果这真的很简单,我会道歉。当我从另一台计算机访问我的服务器时,我收到以下消息:

没有路线匹配 [GET] "/"

如果我尝试访问我的子页面(嗯,目前我只有一个),我会得到以下信息:

未知动作

找不到 AwebpageController 的操作“索引”

但这里有一个问题:这只有时会发生。其余时间,标准的 RoR 主页会加载,然后转到 wwww.mydomain.com/awebpage 会很好地提供页面。

我的 Routes.rb 看起来像这样:

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

awebpage_controller.rb 看起来像这样:

class AwebpageController < ApplicationController
end

是的,Awebpage 的 index.html.erb 确实存在。这一切都如此简单,以至于我不明白出了什么问题。哦,我的网络服务器很薄(不确定这是否重要)。提前感谢您的帮助!

4

1 回答 1

2

您可能希望将其添加到您的路由文件的顶部以设置您的站点的默认控制器和页面(即http://www.mysite.com/):

root :to => "AwebpageController#index"

要删除默认的 Ruby on Rails 网页,您还需要删除目录index.html中的文件/public/

此外,虽然不是必需的,但在您的控制器中,您缺少 index 的函数定义。

class AwebpageController < ApplicationController
  def index
  end
end

通常你会做应用程序逻辑并在这个函数中提供一个视图;但是,如果您什么都不做,RoR 会自动加载与页面关联的视图 (index.html.erb)。

如果在这一切之后您仍然遇到问题,可能会明确添加indexAwebpageController您的路线文件中;也许 rails 只是映射www.mysite.com/Awebpage/Awebpage/index而不是www.mysite.com/Awebpage/index

于 2012-09-24T21:21:13.377 回答