如何测试当前页面是不是在给定的路径/控制器中?

Posted

技术标签:

【中文标题】如何测试当前页面是不是在给定的路径/控制器中?【英文标题】:How can I test if the current page is in a given path/controller?如何测试当前页面是否在给定的路径/控制器中? 【发布时间】:2016-03-10 20:15:22 【问题描述】:

我有以下路线

  resources :tracking_categories do
    resources :trackings
  end

我有以下视图,如果/tracking_categories 路径内的任何位置,我想突出显示该按钮,例如:http://localhost:3000/tracking_categories/6/trackings/new。我试过current_page?

  %liclass: current_page?(controller: 'tracking_categories') ? 'active' : false
    =link_to 'Track My Progress', new_tracking_category_tracking_path(1)

我也试过

%liclass: current_page?(controller: 'trackings') ? 'active' : false

我也试过#url

  %liclass: url.index('tracking_categories') ? 'active' : false

它们都返回 false,除了url,它给出了错误

参数数量错误(0 代表 2)

【问题讨论】:

【参考方案1】:

您可以使用 params[:action] 和 params[:controller]。

Routing parameters documentation

Here is a similar question建议你可以使用:

controller.controller_name == "the_controller_I_want_to_check"
controller.action_name == "the_action_I_want_to_check"

【讨论】:

【参考方案2】:

成功了

%liclass: request.original_url.index('tracking_categories') ? 'active' : false

【讨论】:

以上是关于如何测试当前页面是不是在给定的路径/控制器中?的主要内容,如果未能解决你的问题,请参考以下文章

js或jq怎么实现滚轮控制页面上下滑动

测试给定的 iPhone 是不是支持展开模式下的拆分视图

symfony2 控制器的功能测试:如何生成路由

springMVC框架如何根据页面上的访问路径快速找到相应的控制器类中处理请求的方法?

Laravel:如何将 Excel 文件存储在给定的路径中?

如何解析 dotnet 控制台应用程序的当前目录路径 [重复]