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

时间:2015-12-06 01:44:33

标签: ruby-on-rails ruby-on-rails-4

我有以下路线

  resources :tracking_categories do
    resources :trackings
  end

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

  %li{class: current_page?(controller: 'tracking_categories') ? 'active' : false}
    =link_to 'Track My Progress', new_tracking_category_tracking_path(1)

我也试过

%li{class: current_page?(controller: 'trackings') ? 'active' : false}

我也试过#url

  %li{class: url.index('tracking_categories') ? 'active' : false}

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

  

错误的参数数量(0表示2)

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

这有效

%li{class: request.original_url.index('tracking_categories') ? 'active' : false}