在 Ruby on Rails 中,如何渲染 JSON?

Posted

技术标签:

【中文标题】在 Ruby on Rails 中,如何渲染 JSON?【英文标题】:In Ruby on Rails, how to render JSON? 【发布时间】:2010-07-29 21:51:28 【问题描述】:

我尝试了以下方法来响应 AJAX,它可以正常工作(在 HAML 中):

  - response.content_type = "application/json"
  = render :text => array_data.to_json

但是

  - response.content_type = "application/json"
  = render :json => array_data.to_json

不起作用。我以为我可以使用

  = render :text => array_data.to_json

而不是顶部的前 2 行?

【问题讨论】:

【参考方案1】:
= render :json => @object 

(你不需要使用 .to_json 方法)

【讨论】:

我也试过= render :json => :data => arrayData,发现在Firebug中,响应数据部分也是空的。 @retro,在这两种情况下,Firebug 都会显示一个空的响应数据部分。响应头说 Content-length 是 1 为什么要在视图中呈现 json? 因为有一个返回单个条目的部分,我需要遍历一个数组并将部分结果连接起来形成1列,循环3次得到3列,并将其返回为Ajax 的 JSON 数据 如果我的 json 对象不安静怎么办?如果它甚至不是一个变量,而是一个定义在其他地方(如应用程序控制器)的方法呢?

以上是关于在 Ruby on Rails 中,如何渲染 JSON?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby On Rails 部分渲染

如何渲染 XML 模板,然后在 Ruby on Rails 3.2.8 中使用 SEND_DATA?

在 Ruby on Rails/JS 中以模式呈现新表单而不是新页面

ruby on rails 6 - 在javascript中动态引用图像

Ruby on Rails 生成模型

Ruby on Rails - 如何在 application.js 中执行 require