如何检查或设置视图模板扩展

How to check or setup view template extension

我有 jbuilder 文件:

app/views/api/items/show.json.jbuilder

代码

render :show
#or
render :show, template: "api/items/show"

无效 - template is missing,但代码

render :show, template: "api/items/show.json"

工作正常。

怎么了?需要检查什么? 要查看哪个文件或要转储什么?

您必须使用 respond_to 方法来告诉 Rails 您正在响应 json 请求。

def show
  respond_to do |format|
    format.json
  end
end

另一种方式是通过 HTTP header:

headers: {
  "Accept": "application/json"
}

它不需要在控制器方法中指定格式。 和代码:

render :show

现在工作正常。

我评论了一些限制 HTTP headers 请求的代码。 @Iceman 的回答将我转到正确的方向进行检查,因此他的回答标记为 answer.