如何在Rails中没有控制器和操作的情况下将根路径设置为“/”?

时间:2014-03-05 10:30:57

标签: ruby-on-rails ruby-on-rails-4 routes comfortable-mexican-sofa

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

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

更新信息:

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

目前我只是在我的控制器中使用redirect_to '/'这是有效的,但我认为使用root_path会更好。

2 个答案:

答案 0 :(得分:4)

尝试

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

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

  

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

答案 1 :(得分:2)

除了接受的答案之外,Rails的routes就是为您的应用创建路径

根据ActionDispatch::Routing middleware文档:

  

路由模块在本机Ruby中提供URL重写。这是一种方式   将传入请求重定向到控制器和操作。这取代了   mod_rewrite规则。最重要的是,Rails的路由适用于任何网络   服务器。路由在config / routes.rb中定义

这意味着routes.rb的工作是接收入站请求(//posts等)&重定向到以ruby为中心的代码。 Ruby不知道/是什么 - controller / action组合

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

#config/routes.rb
root to: "controller#action"