0

「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>
4

2 に答える 2

0

次のように使用できます。

<%= link_to  controllers_path do %>
    Some Action <i class="icon-x"></i>
<% end %>
于 2013-05-06T11:14:40.023 に答える