gpt4 book ai didi

ruby-on-rails - 响应多个 JSON 渲染。 ( ruby /rails )

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:50 25 4
gpt4 key购买 nike

这是一个相对简单的,我很确定它只是语法。

我试图将多个对象呈现为 json 作为 Controller 中的响应。所以像这样:

  def info
@allWebsites = Website.all
@allPages = Page.all
@allElementTypes = ElementType.all
@allElementData = ElementData.all


respond_to do |format|
format.json{render :json => @allWebsites}
format.json{render :json =>@allPages}
format.json{render :json =>@allElementTypes}
format.json{render :json =>@allElementData}
end
end
end

问题是我只得到一个 json,而且它总是排在最前面。有没有办法以这种方式渲染多个对象?

或者我应该创建一个由其他对象组成的新对象.to_json?

最佳答案

你实际上可以这样做:

format.json {
render :json => {
:websites => @allWebsites,
:pages => @allPages,
:element_types => @AllElementTypes,
:element_data => @AllElementData
}
}

如果你使用 jquery,你需要做类似的事情:

data = $.parseJSON( xhr.responseText );
data.websites #=> @allWebsites data from your controller
data.pages #=> @allPages data from your controller

等等

编辑:

回答你的问题,你不一定要解析响应,这正是我通常做的。有许多功能可以立即为您完成,例如:

$.getJSON('/info', function(data) {
var websites = data.websites,
pages = data.pages,
...

});

关于ruby-on-rails - 响应多个 JSON 渲染。 ( ruby /rails ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com