2017-02-17 72 views
0

我有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" 

工作的罚款。

出了什么问题?需要检查什么? 要查看哪些文件或要转储哪些内容?

回答

1

您将不得不使用respond_to方法来告诉Rails您对json请求做出响应。

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

是否有办法将其设置为全局默认值,至少对于每个控制器类?我只写应用程序,并没有预期的其他类型的答案。 –

+0

然后你没有使用Rails的api版本吗? – Iceman

+0

我已经解决了您的有用答案的问题。但理由是另一回事。 –

1

另一种方法是通HTTP标头:

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

它不需要在与该控制器的方法来指定格式。 和代码:

render :show 

现在工作正常。

我已经评论了一些限制HTTP头请求的代码。 @Iceman的回答将我转到正确的方向来检查他的答案,标记为answer