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