Html rails应用程序中的当前页面类
我的rails应用程序中有一个简单的导航栏(Html rails应用程序中的当前页面类,html,ruby-on-rails,html-lists,current-page,Html,Ruby On Rails,Html Lists,Current Page,我的rails应用程序中有一个简单的导航栏(主页,新闻,联系人,等等)。我需要定义当前页面以添加:class=>“活动”。我找不到定义当前页面的解决方案。我甚至创造了自己的版本。但所有这些都归结为一个: 一种方法是检查用户所在的页面是否与他们正在访问的控制器名称匹配(您还可以进行控制器名称/操作名称组合以获得额外的特定性) 应用程序\u助手 def nav_helper(arg) controller_name == arg ? "current" : "" end 查看 <li c
主页
,新闻
,联系人
,等等)。我需要定义当前页面以添加:class=>“活动”
。我找不到定义当前页面的解决方案。我甚至创造了自己的版本。但所有这些都归结为一个:
一种方法是检查用户所在的页面是否与他们正在访问的控制器名称匹配(您还可以进行控制器名称/操作名称组合以获得额外的特定性)
应用程序\u助手
def nav_helper(arg)
controller_name == arg ? "current" : ""
end
查看
<li class="<%= nav_helper('about') %>">
<a href="#">A link</a>
</li>
编辑:
Woops,在你编辑你的问题之前我写了这个。要将此添加到所有“li”标记中,请使用另一个使用导航辅助程序的辅助程序,并将nav_helper
方法放在其中。这不是最好的方法,但会让您思考如何拉动当前控制器和操作
您可以查看更多关于如何使代码更简洁的想法。但这需要更多的设置。您将创建一个tabs_tag函数,用于检查当前页面并进行不同的样式设置。就我个人而言,我并不太喜欢这个宝石,我更喜欢用我自己的方式来设计我的页面
<%= tabs_tag do |tab| %>
<%= tab.home 'Homepage', root_path %>
<%= tab.dashboard 'Dashboard', dashboard_path %>
<%= tab.account 'Account', account_path %>
<% end %>
if "#{controller.controller_name.to_s}.#{controller.action_name.to_s}" == "pages.index"
<li class='active'>
else
<li>
end
在你看来
<li class="<%= current_page('pages','index') %>">
我明白了,内容标签
会很好,但我的导航栏不是自动生成的。我需要为每个
元素使用此帮助程序?请稍候。如果我使用它,我将使所有
元素具有class=>“not_active”
,这只是一个示例,您可以省略其他部分。我理解。这是一个比当前页面更短的解决方案,我喜欢它。谢谢但是我必须每次在每个元素上编写
。
<li class="<%= current_page('pages','index') %>">