首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails -为多个模型呈现JSON

Ruby on Rails -为多个模型呈现JSON
EN

Stack Overflow用户
提问于 2010-12-01 05:39:31
回答 4查看 42.2K关注 0票数 67

我正在尝试在JSON中呈现来自多个模型的结果。我的控制器中的以下代码仅呈现第一个结果集:

代码语言:javascript
复制
  def calculate_quote
    @moulding = Moulding.find(params[:id])
    @material_costs = MaterialCost.all

    respond_to do |format|
      format.json  { render :json => @moulding }
      format.json  { render :json => @material_costs }
    end
  end

任何帮助都将不胜感激,谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-01 05:48:18

可以这样做的一种方法是创建包含要呈现的对象的散列,然后将其传递给render方法。如下所示:

代码语言:javascript
复制
respond_to do |format|
  format.json  { render :json => {:moulding => @moulding, 
                                  :material_costs => @material_costs }}
end

如果模型不是通过活动记录关联的,这可能是您最好的解决方案。

如果关联确实存在,则可以将:include参数传递给render调用,如下所示:

代码语言:javascript
复制
respond_to do |format|
  format.json  { render :json => @moulding.to_json(:include => [:material_costs])}
end

请注意,如果采用这种方法,Rails将自动从@moulding变量加载该变量,而不必在上面的小节中检索@material_costs变量。

票数 94
EN

Stack Overflow用户

发布于 2010-12-01 05:52:49

一个控制器只能返回一个响应。如果要将所有这些对象发回,则必须将它们放入一个JSON对象中。

这样如何:

代码语言:javascript
复制
def calculate_quote
  @moulding = Moulding.find(params[:id])
  @material_costs = MaterialCost.all
  response = { :moulding => @moulding, :material_costs => @material_costs }
  respond_to do |format|
    format.json  { render :json => response }
  end
end
票数 8
EN

Stack Overflow用户

发布于 2011-12-31 23:00:42

我做了一些像这样的事情

代码语言:javascript
复制
respond_to do |format|
      format.html # show.html.erb
      format.json { render :json => {:cancer_type => @cancer_type, :cancer_symptoms => @cancer_symptoms }}

结果如下所示

代码语言:javascript
复制
{"cancer_type":{"created_at":"2011-12-31T06:06:30Z","desc":"dfgeg","id":2,"location":"ddd","name":"edddd","sex":"ddd","updated_at":"2011-12-31T06:06:30Z"},"cancer_symptoms":[]}

所以它是有效的。

谢谢你们

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4318962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档