将current_page转换为动作帮助器的最佳方法

时间:2014-03-12 21:27:52

标签: ruby-on-rails ruby methods current-page

我有一个下拉列表,当使用current_page打开页面时该下拉列表会被激活吗?像这样的方法:

<ul>
<li class="dropdown">
  <a href="javascript:void(0)" class="dropdown-toggle <%= current_page?(company_dropA_path(@company)) || current_page?(company_dropB_path(@company)) || current_page?(company_dropC_path(@company)) || current_page?(company_dropD_path(@company)) ? 'active' : '' %>" data-toggle="dropdown"><%= @company.name %> <b class="caret"></b></a>
    <ul class="dropdown-menu">
       <li><%= link_to 'Dropdown A', company_dropA_path(@company) %></li>
       <li><%= link_to 'Dropdown B', company_dropB_path(@company) %></li>
       <li><%= link_to 'Dropdown C', company_dropC_path(@company) %></li>
       <li><%= link_to 'Dropdown D', company_dropD_path(@company) %></li>
    </ul>
</li>
</ul>

正如您可能已经注意到的那样,current_page变得非常漫长而且凌乱。我怎么能把这个转换成帮手呢?

1 个答案:

答案 0 :(得分:1)

%w[A B C D].any?{|c| current_page?(send("company_drop#{c}_path", @company))}