通过侧菜单栏进行rails页面导航

rails page navigation through side menu bar

本文关键字:rails 导航 菜单栏      更新时间:2023-09-26

我正在开发一个应用程序,这里有一个侧菜单栏(图片附在这里),这是屏幕截图的链接。

我想要的是浏览这个菜单,实际上我想在菜单列表中提到的每一页上都预置这个菜单。同时也应该关注我目前所在的链接。这里我也附上了它的截图。

我想在菜单上的所有页面上重复我的侧导航菜单代码。但它不会激活/聚焦当前激活的链接。有更好的解决方案吗?我该怎么办才能解决这个问题?

您可以将菜单放在分部菜单中。我们称之为_sidebar_menu.html.erb

然后你把它加载到每一页,或者像这样加载到你的application.html.erb中->

<%= render partial: "layouts/sidebar_menu" %>"layouts"替换为保存菜单文件的任何文件夹。

现在,菜单出现在每一页中。您可以通过使用一些javascript来"选择"菜单或添加您定义的类以使其"活动"。一种方法是检查url,并使相应的链接处于活动状态,或者您可以使用rails控制器和操作的名称来确定要激活的链接。

$(document).ready(function(){
    controller_name = "<%= params[:controller] %>"
    //The controller name will be dynamically inserted by rails
    $(".sidebar-menu li a").each(function(){
        if($(this).attr("href").toLowerCase().indexOf(controller_name) > -1){
            $(this).addClass("active")
        }
    });
});

我假设你的url中有控制器的名称。你也可以使用控制器的动作名称,比如<%= params[:action] %>来实现它。你可以利用它来找到对你的情况有帮助的解决方案。我希望你明白。如果有效,请告诉我。