Ruby on Rails map.root似乎不起作用

我试图让我的应用程序的根路由到路由到默认控制器。 从我读到的内容来看,应该可以在routes.rb文件的底部使用类似的东西:

map.root :controller => 'albums' 

或者甚至是:

 map.home '', :controller => 'albums' 

但是,当我尝试导航到http:// myhost:8000 /时 ,我只看到rails欢迎页面。 在对routes.rb进行更改并在测试之前,我使用以下命令重新启动应用程序:

 sudo mongrel_cluster_ctl restart 

以下是一些可能相关的环境信息:

 % rails -v Rails 2.3.3 % ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux] 

我确信我错过了一些简单的东西,但我看不出它是什么。 有任何想法吗?

您是否删除了Rails创建的静态public/index.html页面? 如果这仍然在您的应用程序中,它将显示而不是您在路线中定义的根页面。

删除public / index.html文件。

 map.root :controller => 'albums' 

是正确的语法。

一些事情要尝试:

  • 从公共中删除index.html。
  • 看看“rake routes”的输出,你看到的内容如下:
 root / {:controller =>“albums”,:action =>“index”}
  • 您是否100%确定正在重新启动正确的群集:尝试运行脚本/服务器并在端口3000上导航到root

routes.rb末尾的routes.rb是最后使用的路由,因此您可能想尝试使用您routes.rb顶部的’ map.root... ‘. routes.rb

我现在挠了一会儿。 删除public / index.html文件对我来说是个小问题。 谢谢!

我有一个稍微不同的问题。 我已经设置了map.root条目,它可以与mongrel一起使用。 但是,当我使用apache2作为带有Passenger模块的Web服务器时,我收到“500”错误。 如果我重新启动我的/public/index.html,那么它可以在apache2下运行。

我试图直接去:

HTTP:///家/索引

这也给了我相同的’500’错误。

请有人能告诉我我做错了什么吗?

你好

我找到了其他有同样问题的人。 事实certificate,当我的应用程序处于开发模式时,Passenger正在生产模式下运行。

我通过将以下行添加到我的虚拟主机文件中将Passenger置于开发模式

RailsEnv =开发

重启Apache,一切正常!

唷!

Purvez