在我的 routes.rb 中,我想将root_path设置为'/',而不指定任何控制器或操作。这可能吗?
我尝试了root to: '/'
,但它抱怨说没有指定控制器或操作。
更新信息:
我正在使用comfortable-mexican-sofa CMS,我的root_path应该转到cms根路径。
目前我只是在我的控制器中使用redirect_to '/'
这是有效的,但我认为使用root_path
会更好。
答案 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"