Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查或设置视图模板扩展_Ruby On Rails_Jbuilder - Fatal编程技术网

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

Ruby on rails 如何检查或设置视图模板扩展,ruby-on-rails,jbuilder,Ruby On Rails,Jbuilder,我有jbuilder文件: app/views/api/items/show.json.jbuilder 代码 未工作-模板缺失,但代码 render :show, template: "api/items/show.json" 很好 怎么了?需要检查什么? 查看哪个文件或转储什么?您必须使用该方法告诉Rails您正在响应一个json请求 def show respond_to do |format| format.json end end 您必须使用该方法告诉Rails您

我有jbuilder文件:

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

未工作-
模板缺失
,但代码

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

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

您必须使用该方法告诉Rails您正在响应一个
json
请求

def show
  respond_to do |format|
    format.json
  end
end
您必须使用该方法告诉Rails您正在响应一个
json
请求

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

另一种方法是传递HTTP头:

headers: {
  "Accept": "application/json"
}
它不需要在控制器方法中使用此选项指定格式。 和代码:

render :show
现在工作很好


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

另一种方式是传递HTTP头:

headers: {
  "Accept": "application/json"
}
它不需要在控制器方法中使用此选项指定格式。 和代码:

render :show
现在工作很好


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

,是否有方法至少为每个控制器类将其设置为全局默认值?我只编写api应用程序,不需要其他类型的答案。那么您是否不使用Rails的api版本?我已经用您有用的答案解决了问题。但原因是另一个。好吧,我很高兴它有帮助。有没有办法至少为每个控制器类全局设置默认值?我只编写api应用程序,不需要其他类型的答案。那么您是否不使用Rails的api版本?我已经用您有用的答案解决了问题。但原因是另一个。好吧,我很高兴这有帮助。