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