【问题标题】:acts_as_tree to nested JSON hashesact_as_tree 到嵌套的 JSON 哈希
【发布时间】:2010-01-11 22:13:43
【问题描述】:

我的目标是使用this thread 上所选答案中描述的结构打印一个 json 文档。我只有一个级别的子类别(总共 2 个,包括 root)所以它应该比那里的问题更容易一些。我遇到的问题是效率。只有大约 20 个根类别,递归导致我的脚本动作非常缓慢。我的控制器如下所示:

def categories
    render :text => "var categories = #{Category.main.map { |c| c.with_children }.to_json};"
end

以及 Category 模型上的相应方法:

def with_children
    {
        :name => self.name, 
        :id => self.id, 
        :parent_id => self.parent_id, 
        :children => self.children.blank? ? nil : self.children
    }
end

谁能提供一些建议来提高这个过程的效率?也许是急切加载或其他什么?

【问题讨论】:

    标签: jquery ruby-on-rails ruby


    【解决方案1】:

    好的,我假设“main”是 Category 的命名范围,而 children 是 has_many 关联。 您可以向类别添加另一个范围,一个在一个查询中检索所有类别的子级的范围...类似于:

        scope :with_children, includes(:children)
    

    这将导致不是对每个类别进行一次查询来检索子项,而是只进行一次查询来检索您正在加载的所有类别的子项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多