簡體   English   中英

從控制器以JSON呈現對象時,如何包含對象父級的字段?

[英]When rendering an object in JSON from the controller, how do I include a field from the object's parent?

我正在使用Rails 4.2.7。 通過show方法返回對象時,我想包含來自對象父對象的對象。 我試過了

  def show
    respond_to do |format|
      @my_object = MyObject.find(params[:id])
      format.json { render :json => @my_object.to_json(:include => [:parent, :include => :address]) }
    end
  end

但是這會產生錯誤

NoMethodError (undefined method `include' for #<MyObject:0x007fa1b433d788>):

包含我父母的對象的正確方法是什么?

編輯:這是我的Rails應用程序中的父模型

class Parent < ActiveRecord::Base
  belongs_to :address, :autosave => true   #, dependent: :destroy

試試這個

def show

  @my_object = MyObject.find(params[:id])
  render :json => @my_object.to_json(:include => [:parent => {:include => :address}]) 

end

您已在include語句中添加了include,

@my_object.to_json(:include => [:parent, **:include** => :address])

因此,Rails正在搜索包括作為方法或模型之一。

您可以使用這樣的數組來包含多個關系。

:include => [:parent, :address]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM