【问题标题】:How to render json with JBuilder in Rails 3.2如何在 Rails 3.2 中使用 JBuilder 渲染 json
【发布时间】:2014-02-18 21:09:03
【问题描述】:

我正在尝试将 JBuilder 集成到 Rails 3.2 项目中。我已经安装了 gem,并在 app/views/books/index.json.jbuilder 写了一个 JBuilder 文件。

这是我的索引操作:

  def index

    @books = Book.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @books }
    end
  end

这似乎调用了Book 的默认as_json 方法来呈现响应。我需要更改什么来让 Rails 使用我的 JBuilder 模板?

【问题讨论】:

    标签: ruby-on-rails ruby json ruby-on-rails-3 jbuilder


    【解决方案1】:

    删除您传递给format.json 的块。您导致它忽略您的 jbuilder 文件,而是返回 json: @books 的结果作为响应。如果你把这个块排除在外:

    respond_to do |format|
      format.html # index.html.erb
      format.json # no block here
    end
    

    然后 Rails 将回退到它对响应的默认处理并在您的视图目录中查找模板,它会找到 jbuilder 文件并将其呈现为响应。

    【讨论】:

    • 不工作我在一个使用 json 格式的 jquery ajax 调用中,它试图找到 html 视图
    猜你喜欢
    • 2014-07-16
    • 2016-04-29
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多