1

在我的routes.rb 中,我想将 root_path 设置为“/”而不指定任何控制器或操作。那可能吗?

我试过root to: '/'了,但它抱怨说没有指定控制器或动作。

更新信息:

我正在使用comfort-mexican-sofa CMS,我的root_path 应该转到cms 根路径。

目前我只是redirect_to '/'在我的控制器中使用,这正在工作,但我认为使用root_path.

4

2 回答 2

5

尝试

root :to => "cms/content#show"

来自文档:https ://github.com/comfy/comfortable-mexican-sofa/wiki/Pages

您创建的第一个页面是主页,因此您不能指定 slug。默认情况下,您应该能够在不指定根路由的情况下访问主页。但是,如果您或您正在使用的 gem 需要访问 root_path 帮助程序,root :to => "cms/content#show"请在您的路线中指定。

于 2014-03-05T10:40:57.243 回答
3

除了公认的答案之外,routesRails 的全部内容都是为您的应用程序创建路径

根据ActionDispatch::Routing 中间件文档:

路由模块在原生 Ruby 中提供 URL 重写。这是一种将传入请求重定向到控制器和操作的方法。这取代了 mod_rewrite 规则。最重要的是,Rails 的路由可以与任何 Web 服务器一起使用。路由在 config/routes.rb 中定义

这意味着它的工作routes.rb是接收入站请求(/,/posts等)并重定向到以 ruby​​ 为中心的代码。Ruby 不知道是什么/——它必须有一个controller/action组合

这就是为什么你需要类似的东西:

#config/routes.rb
root to: "controller#action"
于 2014-03-05T10:57:37.317 回答