我正在使用 Rails 3.2.8 构建后端,并且我有一个巨大的对象图,其中包含很多依赖项等。
例子:
A belongs_to B (and of course B has_many A)
B belongs_to C
C belongs_to D
etc...
如果我现在打开 URL“http://0.0.0.0:3000/ds.json”,我会得到整个对象图。
[{"id":1,"c":{
"id":1,"b":{
"id":1,"a":{
"id":1
}
}
}]
(我有一个自定义数据库,其中外键没有“_id”后缀)。
相反,如果我打开“ds.json”,我只想获得“C”的 id:
[{"id":1,"c":1}]
这可能吗?
编辑: 我的模型看起来像这样(我认为这是问题所在,但我无法更改数据库方案):
class Location < ActiveRecord::Base
self.table_name = 'location'
self.primary_key = 'id'
belongs_to :map, foreign_key: :map
end
class Map < ActiveRecord::Base
self.table_name = 'map'
self.primary_key = 'id'
has_many :locations, foreign_key: :map
end
问题似乎是rails只是在“位置”中看到“地图”并且只是抓住了整个对象,因为“地图”是对象的名称和位置表中的id列......
我如何告诉 Rails object 和 id-column 之间的区别?!