Ruby on rails 递归json的Rails模型
我有一个菜单模型,它有相同类型的子菜单。比如:Ruby on rails 递归json的Rails模型,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个菜单模型,它有相同类型的子菜单。比如: 一级 1.1级 1.2级 二级 2.1级 因此,我需要一种方法以递归的方式将所有级别包含在json中。Rails中的json通过两种方法工作: as_json负责创建对象的哈希表示,而to_json则将该哈希对象表示转换为json 因此,您需要做的是在模型中定义as_json方法,以包含您想要的内容 def as_json { :other_options => value, :submenu => self
- 一级
- 1.1级
- 1.2级
- 二级
- 2.1级
因此,我需要一种方法以递归的方式将所有级别包含在json中。Rails中的json通过两种方法工作:
as_json
负责创建对象的哈希表示,而to_json
则将该哈希对象表示转换为json
因此,您需要做的是在模型中定义as_json方法,以包含您想要的内容
def as_json
{
:other_options => value,
:submenu => self.submenus.collect { |n| n.as_json }
}
end
这是一个非常粗糙的实现,但它将递归访问所有子菜单(因为子菜单本身就是菜单),并将它们呈现为哈希,然后转换为JSON。我不理解您的问题。你能更详细地解释一下你想做什么吗?如果您只想将ActiveRecord记录转换为JSON,只需调用
即可。彼此彼此。这些数据是如何存储的?您使用什么样的数据结构?如果它在散列中,那么您可以像max_w所说的那样将其转换为json(这将以递归方式工作)。否则,您很可能会使用.map()或.collect()之类的东西以某种形式获取它,您可以使用它来生成json。但是我们需要知道更多的细节来向您展示如何做到这一点