0

我需要输出自定义 JSON 以便与现有软件向后兼容,该软件是用 Javascript 编写的,所以我需要用“parseDate(”开头的 JSON 和“);”来包装我的 JSON 最后。

我试过在控制器中这样做

def index
@data = Data.all
@products = Product.all

respond_to do |format|
  format.html
  format.json {render :json => { :products => {:product => @data.name}}}
end

结尾

然后在视图中指定它:

应用程序/视图/products.json.erb

<%= p "parseData(" %>
<%= render :json %>
<%= p "};" %>

但是它输出的纯 JSON 完全跳过了“parseData(”和“);”,为什么?如何使 JSON 打印在视图中间,然后将字符串附加到顶部和底部?

4

1 回答 1

1

JSON 渲染器支持回调选项。

format.json { render :json => { :products => {:product => @data.name }}, :callback => 'parseDate' }

您可以阅读renderer.rb源代码中的实现。

于 2013-05-09T12:17:29.340 回答