我在我的rails应用程序中有一个博客部分,并且想知道根据将要打开的页面,处理分配CSS类active
的好方法是什么。
是否应通过.erb
if
和do
语句完成此操作?它需要反映帖子所在的类别。
博客类别表:
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
的类别。
答案 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