Action Controller 隐式渲染
处理控制器操作的隐式渲染,该操作没有显式地使用 render
、respond_to
、redirect
或 head
进行响应。
对于 API
控制器,隐式响应始终为 204 No Content
。
对于所有其他控制器,我们使用以下启发式方法来决定是渲染模板、为缺少模板引发错误,还是以 204 No Content
进行响应。
首先,如果我们确实找到了模板,则会渲染它。模板查找会考虑操作名称、区域设置、格式、变体、模板处理程序等(有关详细信息,请参见 render
)。
其次,如果我们没有找到模板,但控制器操作确实为其他格式、变体等具有模板,那么我们相信您也打算为此响应提供模板,因此我们引发 ActionController::UnknownFormat 并提供解释。
第三,如果我们没有找到模板,并且请求是网页浏览器中的页面加载(技术上来说,是对 HTML 响应的非 XHR GET 请求),而您合理地期望已渲染模板,那么我们引发 ActionController::MissingExactTemplate 并提供解释。
最后,如果我们没有找到模板,并且请求不是浏览器页面加载,那么我们隐式地以 204 No Content
进行响应。