创建新的Rails应用程序时,默认情况下它会提供一个"欢迎使用Rails" /
页面,除非您在root
中指定备用routes.rb
。
我的应用程序目前仅提供来自子路径的内容(例如/api/v1/
),因此访问/
应该会生成404.我该如何做到这一点?
答案 0 :(得分:11)
如果您想呈现404
回复,我可以想到两种方法。
首先,您可以路由到Rack,并返回一个简单的404
响应:
# config/routes.rb
root to: proc { [404, {}, ["Not found."]] }
其次,您可以采用明显的路径并将根点指向返回404
的控制器操作:
# config/routes.rb
root to: "application#not_found"
# app/controllers/application_controller.rb
def not_found
render plain: "Not found.", status: 404
end
第三种选择当然是路由到不存在的行为,但我认为这不是一个好主意,因为意图模糊不清,很容易被误认为。
答案 1 :(得分:1)
如果删除它,您将看到Rails的默认问候语,其中包括有关您的环境的一些技术信息。这不太可能是您需要的行为。
我这样解决了:
Rails.application.routes.draw do
namespace :admin do
...
end
# To prevent users from seeing the default welcome message "Welcome aboard" from Rails
root to: redirect('admin/sign_in')
end