「ul」と「li」を使用していくつかのメニューを構築するブートストラップレイアウトを使用しています
<li>
<a href="index.html">
<i class="icon-x"></i>
<span>Some action</span>
</a>
</li>
<li>
<a href="#" class="dropdown-toggle" >
<i class="icon-y"></i>
<span>Group action</span>
</a>
<ul class="submenu">
<li><a href="/subs1"> Submenu 1</a></li>
<li><a href="/subs2"> Submenu 2</a></li>
</ul>
</li>
....
これは問題ありませんが、データベース テーブルのデータを使用してこの構造を構築します。データベースからデータをロードしてこのメニューを構築するためのヘルパーを作成します。ただし、これにより、ページが再構築されるたびにサーバーに対していくつかの「選択」コマンドが発生します。
私の質問は、皆さんはこれをどのように行っているのですか?
アップデート:
これは私のヘルパー コードです (私の実際のコードはもう少し複雑であることに注意してください)。
module ApplicationHelper
def build_main_menu
menus = Menu.all(:conditions => "root_id is null")
menus.map do |m|
content_tag :li do
content_tag :a, :href => m.url do
concat(content_tag(:i, :class => m.icone) do end)
concat(content_tag(:span, m.legenda))
end
end
end.join("\n").html_safe
end
end
そしてerbレイアウト:
<ul class="nav nav-list">
<%= build_main_menu %>
</ul>