2

我正在关注 rails cast Tree Based Navigation

我想按字母顺序排列子树。

在我的 PagesController 我有

@page_for_nav = Admin::Page.find_by_permalink!(params[:id])

被调用

<%= render 'layouts/sub_navigation', pages: @page_for_nav.root.descendants.arrange %>

呈现

<ul>
  <% pages.each do |page, children| %>
    <% if page.page_status == 'Public' %>
    <li>
      <%= link_to_unless_current page.name, "../#{page.permalink}" %>
      <%= render 'layouts/sub_navigation', pages: children if children.present? %>
    </li>
    <% end %>
  <% end %>
</ul> 

在我的 PagesController 中执行此操作失败(没有给出错误,只是没有排序)

@page_for_nav = Admin::Page.order("name asc").find_by_permalink!(params[:id])

并在每个也失败的情况下执行此操作(没有给出错误,它只是不订购)

<% pages.each.order("name asc") do |page, children| %>
4

1 回答 1

1

您应该将:order => :name选项传递给arrange方法

<%= render 'layouts/sub_navigation', pages: @page_for_nav.root.descendants.arrange(:order => :name) %>

阅读文档:https ://github.com/stefankroes/ancestry#arrangement

于 2013-07-18T12:12:37.080 回答