我在 rails 中有以下模型:
class Model < ActiveRecord::Base
# id — integer
# name — string
# model_id — integer
belongs_to :parent, class_name: 'Model', foreign_key: 'model_id'
has_many :children, class_name: 'Model', foreign_key: 'model_id'
end
我正在使用邻接结构,它可以具有无限的深度。我正在使用递归查询在Postgres数据库上。
获取嵌套对象哈希表的最合理方法是什么?我尝试选择Model
的实例并对它们进行排序,但无法得到任何可用的结果。
假设我在数据库中保存了四个Model
实例:Model_1
、Model_2
、Model_3
和Model_4
。 Model_3
是Model_2
的子代,而Model_4
是Model_3
的子代。
这是我正在尝试实现的输出(Model
实例的嵌套哈希表):
{
#<Model_1...> => {},
#<Model_2...> => {
#<Model_3...> => {
#<Model_4...> => {}
}
}
}
有什么想法吗?
更新:树已经恢复——作为CollectionProxy、Relation或任何其他类似数组的数据结构。我想将该树排序成嵌套哈希的哈希表。