Rails キャストの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| %>