Dan*_*bbs 12 ruby ruby-on-rails url-routing
当创建一个新的Rails应用程序,默认情况下它提供在"欢迎使用Rails的"页面/,除非你指定替代root在routes.rb.
我的应用程序目前仅从子路径(例如/api/v1/)提供服务,因此访问/应该产生404.我如何实现这一目标?
Dre*_*nmi 15
如果要呈现404响应,我可以考虑两种方法.
首先,您可以路由到Rack,并返回一个简单的404响应:
# config/routes.rb
root to: proc { [404, {}, ["Not found."]] }
Run Code Online (Sandbox Code Playgroud)
其次,您可以采用明显的路径并将根点指向返回的控制器操作404:
# config/routes.rb
root to: "application#not_found"
# app/controllers/application_controller.rb
def not_found
render plain: "Not found.", status: 404
end
Run Code Online (Sandbox Code Playgroud)
第三种选择当然是路由到不存在的行为,但我不认为这是一个好主意,因为意图模糊不清,很容易被误认为.