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

时间:2009-07-30 07:44:47

标签: ruby-on-rails ruby

我试图让我的应用程序的根路由到路由到默认控制器。从我读到的内容来看,应该可以在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]

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

6 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:13)

删除public / index.html文件。

答案 2 :(得分:3)

map.root :controller => 'albums'

语法是否正确。

要尝试的一些事项:

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

答案 3 :(得分:1)

routes.rb末尾的路线是最后使用的路线,因此您可以尝试使用map.root...

顶部的“routes.rb

答案 4 :(得分:0)

我现在已经摸不着头脑了。 删除public / index.html文件对我来说是个小问题。 谢谢!

答案 5 :(得分:0)

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

我试图直接去:

HTTP:///家/索引

这也给了我同样的'500'错误。

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

您好

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

我通过将以下行添加到我的虚拟主机文件

将Passenger置于开发模式

RailsEnv =开发

重启Apache,一切正常!!

呼!

Purvez