我对 Ruby 很陌生,所以我可能只是在这里遗漏了一件简单的事情。
我正在使用 rails Ancestry gem 为我正在编写的 API 生成 JSON 输出。这是控制器:
class ParentsController < ApplicationController
def show
@vendor = Vendor.find(params[:id]).subtree
render json: @vendor, status: 200
end
end
这会产生正确的输出,显示 ID、供应商、祖先等。
但是,当我.arrange
这样添加时:
class ParentsController < ApplicationController
def show
@vendor = Vendor.find(params[:id]).subtree.arrange
render json: @vendor, status: 200
end
end
我得到的输出是:
{"#\u003CVendor:0x4b9e628\u003E":
{"#\u003CVendor:0x4b9e3e8\u003E":
{},
"#\u003CVendor:0x4b9e1f0\u003E":
{}}}
这看起来像对象的内存位置。为了让这个以排列的形式实际输出对象,我缺少什么基本的东西?
我也尝试过使用arrange_serializable
而不是arrange
,这给了我一个
undefined method 'arrange_serializable' for #<ActiveRecord::Relation::ActiveRecord_Relation_Vendor:0x4b9b910>
错误