为bootstrap Nav-pills分配活动类 - Ruby on Rails

时间:2018-05-30 12:14:20

标签: ruby-on-rails ruby twitter-bootstrap

我在我的rails应用程序中有一个博客部分,并且想知道根据将要打开的页面,处理分配CSS类active的好方法是什么。

是否应通过.erb ifdo语句完成此操作?它需要反映帖子所在的类别。

博客类别表:

create_table "blog_categories", force: :cascade do |t|
  t.string "name"
  t.integer "parent_id"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

帖子表格列 t.integer "category_id" - 存储这些内容以与猫的.id相关联。

我的类别用parent_id NULL表示,子类别是parent_id设置为主要类别.id的类别。

2 个答案:

答案 0 :(得分:2)

您可以通过在application_helper.rb

中定义一个函数来完成此操作
def active_class(path)
 "active" if current_page?(path)
end
如果用户与路径参数中传递的URL相同,则

current_page?方法将返回活动状态。结帐documentation

然后在视图中你可以像这样使用它。

<li class="<%= active_class new_user_session_path %>">

答案 1 :(得分:0)

我更喜欢你使用这些帮助器,一个是单路径 例如:

<head>
  <!-- Plotly.js -->
   <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<!-- Plotly chart will be drawn inside this DIV -->
<div id="myDiv" style="width: 100%; height: 500px;"></div>
  <script>
  /* JAVASCRIPT CODE GOES HERE */
  </script>
</body>

这个是针对多个链接数组的 例如

<li class="<%= active_class(first_path) %>">

def active_class(link_path)
 current_page?(link_path) ? 'active' : ''
end