2014-03-29 6 views
0

Я пытаюсь реорганизовать часть кода на моем взглядеперебор контроллера метода в целях

<% if controller.controller_name == "overview" %> 
<div id="left-menu"> 
    <ul> 
    <li>Office</li> 
    <hr> 
    <li><%= link_to "Overview", root_path %></li> 
    <li><%= link_to "Personnel", personnel_path %></li> 
    <li><%= link_to "Results", results_path %></li> 
    <li><%= link_to "Statistics", statistics_path %></li> 
    </ul> 
    <ul> 
    <li>Economy</li> 
    <hr> 
    <li>Finances</li> 
    <li>Contracts</li> 
    <li>Transfers</li> 
    <li>Sponsors</li> 
    </ul>    
</div> 
<% elsif controller.controller_name == "market" %> 
<div id="left-menu"> 
    <ul> 
    <li>Items</li> 
    <hr> 
    <li><%= link_to "Engines", market_engines_path %></li> 
    <li><%= link_to "Weapons", market_weapons_path %></li> 
    <li><%= link_to "Armor", market_armor_path %></li> 
     <li><%= link_to "Chips", market_chips_path %></li> 
    </ul> 
    <ul> 
    <li>Personnel</li> 
    <hr> 
    <li><%= link_to "Drivers", market_drivers_path %></li> 
    <li><%= link_to "Servicemen" %></li> 
    <li><%= link_to "Programmers" %></li> 
    <li><%= link_to "Managers" %></li> 
    </ul>    
</div> 
<% end %> 

Где каждый <li> соответствует методе в контроллере. Я хотел бы иметь возможность добавлять новые методы к моим контроллерам, а затем динамически вставлять их в представление. Так есть ли способ перебора методов в контроллере?

+1

дубликата http://stackoverflow.com/ вопросы/8686441/how-to-get-list-of-controllers-and-actions-in-ruby-on-rails? –

ответ

0

В соответствии с ответом, в ссылочного вопрос, Controller.action_methods кажется метод вам нужно, однако, интегрировать в ваш код выглядит следующим образом:

<% lists = %w(items personell) %> 
<% for list in lists do %> 
    <ul> 
     <li><%= list.titleize %></li> 
     <hr> 
     <% items = MarketsController.action_methods %> 
     <% for item in items do %> 
      <li><%= link_to item.titleize, eval("market_#{item}_path") %></li> 
     <% end %> 
    </ul> 
<% end %> 
Смежные вопросы