ruby-on-rails - 如何在 Rails 3.2 中使用 JBuilder 渲染 json

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

我正在尝试将 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 模板?

最佳答案

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

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

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

关于ruby-on-rails - 如何在 Rails 3.2 中使用 JBuilder 渲染 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390850/

相关文章:

ruby-on-rails - 如何在 Rails 中将一个模型的内容分配给另一个模型?

ruby-on-rails - zscan 无法在 redis 服务器上工作

json - mime 类型设置

ruby-on-rails - 当每个请求的应用程序 ID 和应用程序 secret 都不同时,使用 omniauth-facebook 吗?

ruby - 将heroku数据库从一个bamboo应用程序传输到另一个cedar应用程序

sql - 对包含变量进行分页

ruby - 使用 ruby​​ mechanize 捕获超时错误

json - 在 Go 中正确解析 JSON

asp.net-mvc - 如何在 Json .NET Web API 中 POST 但 JsonIgnore GET 时读取属性

ruby-on-rails - rails/ruby "and return false"语法