我有一个非常复杂的查询,结果是记录集中有很多记录。现在,在中,我想以这样一种方式进行排序,即孩子在父级下进行排序。
就像record_set.sort_by_relation。
它是相同的表父子关系。子级与父级与parent_id相关联。
示例:具有以下结果的记录集:
预期的结果将是:
发布于 2013-04-09 15:00:36
您可以使用像可怕的嵌套集这样的gem来实现这种嵌套。
如果您不想使用gem,您可以考虑首先让您的父母使用类似where('parent_id IS NULL')之类的东西,然后对每个家长使用where('parent_id = ?', object.id)来获取其子女(以及其子代等等)。
但是,可怕的嵌套集是相当整洁的。你将能够做这样的事情:
<ul>
<%- record_set.roots.each do |record| %>
<%= render :partial => 'record', :locals => {:record => record} %>
<%- end %>
</ul>_record.html.erb
<li>
<%= record.name %>
<%- unless record.children.empty? %>
<ul>
<%- record.children.each do |child|
<%= render :partial => 'record', :locals => {:record => child} %>
<%- end %>
</ul>
<%- end %>
</li>我希望这有帮助:)
https://stackoverflow.com/questions/15902282
复制相似问题