【发布时间】:2016-10-25 01:38:54
【问题描述】:
我有一个查看页面errors/401。这专门用于显示状态为 401 的错误,我总是希望以状态 401 呈现该页面。在呈现该页面的控制器中,我这样写
render "error/401", status: 401
我觉得这是多余的。由于此页面始终以特定状态呈现,因此我想在视图页面中指定状态,而不是在控制器中提及,并获得相同的结果。我只想写:
render "error/401"
这可能吗?
【问题讨论】:
-
我不确定这是否可能,但由于您使用控制器/视图来返回自定义错误页面。除非您另有说明,否则 rails 控制器将始终将
status: 200添加到您的响应标头中 -
不,因为您的服务器处理请求/响应 - 在这种情况下是控制器。控制器应该负责您的响应和响应的请求标头,其中包括状态。在您看来,您不应该这样做。话虽如此,您可以将此文件创建为 public/401.html,而您只是说
status: 401网络服务器将服务于 public/401.html。但是,这个 401.html 将是一个静态 HTML 文件,将无法解析其中的任何 ruby 代码。
标签: ruby-on-rails ruby view http-status-codes