首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记录集上的rails父级子过滤

记录集上的rails父级子过滤
EN

Stack Overflow用户
提问于 2013-04-09 12:44:57
回答 1查看 144关注 0票数 0

我有一个非常复杂的查询,结果是记录集中有很多记录。现在,在中,我想以这样一种方式进行排序,即孩子在父级下进行排序。

就像record_set.sort_by_relation

它是相同的表父子关系。子级与父级与parent_id相关联。

示例:具有以下结果的记录集:

  • 主投标1
  • 分标书21
  • 主投标2
  • 分标书1
  • 分标书22
  • 分标书2

预期的结果将是:

  • 主投标1
  • 分标书1
  • 分标书2
  • 主投标2
  • 分标书21
  • 分标书22
EN

回答 1

Stack Overflow用户

发布于 2013-04-09 15:00:36

您可以使用像可怕的嵌套集这样的gem来实现这种嵌套。

如果您不想使用gem,您可以考虑首先让您的父母使用类似where('parent_id IS NULL')之类的东西,然后对每个家长使用where('parent_id = ?', object.id)来获取其子女(以及其子代等等)。

但是,可怕的嵌套集是相当整洁的。你将能够做这样的事情:

代码语言:javascript
复制
<ul>
  <%- record_set.roots.each do |record| %>
    <%= render :partial => 'record', :locals => {:record => record} %>
  <%- end %>
</ul>

_record.html.erb

代码语言:javascript
复制
<li>
  <%= record.name %>
  <%- unless record.children.empty? %>
    <ul>
      <%- record.children.each do |child|
        <%= render :partial => 'record', :locals => {:record => child} %>
      <%- end %>
    </ul>
  <%- end %>
</li>

我希望这有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15902282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档