【问题标题】:How to check or setup view template extension如何检查或设置视图模板扩展
【发布时间】:2017-02-17 22:21:39
【问题描述】:

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

工作正常。

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

【问题讨论】:

    标签: ruby-on-rails jbuilder


    【解决方案1】:

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

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

    【讨论】:

    • 有没有办法至少为每个控制器类将其设置为全局默认值?我只写 api 应用程序,没有其他类型的答案。
    • 那你用的不是API版本的Rails吗?
    • 我已经用您的有用回答解决了问题。但原因是另一回​​事。
    • 好吧,不过我很高兴它有所帮助。
    【解决方案2】:

    另一种方法是传递 HTTP 标头:

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

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

    render :show
    

    现在工作正常。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多