【发布时间】:2016-10-06 21:34:12
【问题描述】:
我使用的是 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
【问题讨论】:
-
使用
:methods可能会有所帮助。见tigraine.at/2011/11/17/… -
这有什么帮助? “地址”是父对象的关联,而不是方法。
-
我的问题中包含了我的父模型。我确实建立了协会。不幸的是,客户端返回的是 my_object.parent.address_id 而不是我想要的“my_object.parent.address”对象。我确实在我的模型中设置了地址关联,因为我对我的问题进行了编辑。
-
如果你可以进入你的 Rails 控制台并获得你想要的值(my_object.parent.address.street_name 或其他),确认你的关联是正确的,那么我建议使用类似 jbuilder 的东西,这将帮助您明确定义所需的 JSON 结构。
标签: ruby-on-rails json ruby controller format