跳至内容 跳至搜索

Action Controller 隐式渲染

处理未显式响应 renderrespond_toredirecthead 的控制器操作的隐式渲染。

对于 API 控制器,隐式响应始终为 204 No Content

对于所有其他控制器,我们使用以下启发式方法来决定是渲染模板、引发模板丢失错误,还是响应 204 No Content

首先,如果我们确实找到了模板,则将其渲染。模板查找会考虑操作名称、区域设置、格式、变体、模板处理程序等(有关详细信息,请参阅 render)。

其次,如果我们未找到模板,但控制器操作具有其他格式、变体等的模板,那么我们相信您也打算为此响应提供模板,因此我们将引发 ActionController::UnknownFormat 并提供说明。

第三,如果我们未找到模板,并且请求是网页浏览器中的页面加载(技术上讲,是针对 HTML 响应的非 XHR GET 请求),在这种情况下您合理地期望已渲染了模板,那么我们将引发 ActionController::MissingExactTemplate 并提供说明。

最后,如果我们未找到模板,并且请求不是浏览器页面加载,那么我们将隐式响应 204 No Content