我正在使用引导带布局,它使用“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>