在引导菜单中设置当前活动选项卡

use*_*969 3 ruby-on-rails twitter-bootstrap ruby-on-rails-4

我在部分中定义了以下引导菜单(丸):

<ul class="nav nav-pills">
  <li class="active"><a href="#">Home</a></li>
  <li><a href="#">Menu 1</a></li>
  <li><a href="#">Menu 2</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

以下是一些示例路线:

  get 'institute/:institute_id/students' => 'students#index'   , as: 'students_of_institute'
  get 'students/:student_id'             => 'students#show'
Run Code Online (Sandbox Code Playgroud)

我在各种观点中引用了这个部分.如何动态更改当前活动选项卡?

Uzb*_*jon 5

您必须检查当前路径,如果它与您的链接匹配,则为您添加一个activeli.

一个简单的方法是比较params[:controller]params[:action].

例如:

# GET /posts
params[:controller]     => "posts"
params[:action]         => "index"
Run Code Online (Sandbox Code Playgroud)

这是一个"脏"的例子.最好把它移到一个帮手:

<ul class="nav nav-pills">

  <li class="<%= 'active' if params[:controller] == 'students' && params[:action] == 'index' %>"><%= link_to 'Students', students_path %></li>

</ul>
Run Code Online (Sandbox Code Playgroud)