Ruby on Rails新手求助:如何创建/about这类单层路由?
Rails单层路由配置问题解答
当然可以在Rails中创建/about这类单层路由,完全不需要局限于home/about这种多层路径。你遇到的错误只是因为路由配置缺少了控制器和动作的指定,不是不能用单层路径。
你已经有独立的TestController,正确的路由配置应该是这样:
get '/test', to: 'test#index'
这里的test#index对应TestController中的index动作,同时要确保app/views/test/index.html.erb(或你使用的其他模板格式文件)已经创建好。
针对/about这类页面,常见的两种实现方式:
- 独立控制器方案:创建一个
PagesController,然后配置路由:
接着在get '/about', to: 'pages#about'PagesController中添加about动作,再创建对应的视图文件app/views/pages/about.html.erb即可。 - 静态视图直接渲染:如果页面都是静态内容,也可以不用额外写控制器动作,直接指定视图路径:
这种方式只要对应的视图文件存在,就能正常渲染页面。get '/about', to: -> { render 'pages/about' }
你之前的错误ArgumentError: Missing :controller key on routes definition, please check your routes.,本质是Rails不知道该把/test的请求交给哪个控制器处理,补上to: '控制器#动作'的指定就能解决问题。
内容的提问来源于stack exchange,提问作者ApplesAndCode464
相关产品推荐
相关产品推荐

