2013-05-09 129 views
0

我需要輸出自定義JSON以便與用Javascript編寫的現有軟件向後兼容,所以我需要在JSON的開頭打包「parseDate(」,以及「);」在它的結尾。向Rails添加字符串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在視圖中間打印,然後將字符串追加到頂部和底部?

回答

1

JSON渲染器支持回調選項。

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

您可以閱讀renderer.rb源代碼中的實現。