0

我有一个这样的架构......

class Foo < ActiveRecord::Base
    has_many :bars
end

class Bar < ActiveRecord::Base
    belongs_to :foo
    belongs_to :bar
end

class Baz < ActiveRecord::Base
    has_many :bars
end

我试图让所有三个对象都嵌套在 JSON 中并分解,所以我有以下代码......

foo = Foo.first
foo.to_json(:include => {:bars => :baz})

但我得到以下异常......

无法克隆符号文件:try.rb 位置:克隆行:36

我想得到 Foo 与所有嵌套的酒吧和所有 baz 嵌套的酒吧。那可能吗?

我希望我保持示例抽象的尝试是有意义的:)

4

2 回答 2

1

我认为在 to_json 方法上嵌套模型的正确方法如下:

foo.to_json(:include => { :bars => { :include => { :baz } } }

根据to_json 方法的api。

我希望它有帮助:)

于 2013-11-04T10:35:11.610 回答
0

从控制器方法渲染 json 时,我遇到了相同的“无法克隆符号文件”错误。像这样避免它:

render :json => @team.to_json( :include => [:members] )
于 2015-09-03T15:05:08.533 回答