【问题标题】: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?

  %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)

【问题讨论】:

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


    【解决方案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】:

      成功了

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

      【讨论】:

        猜你喜欢
        • 2010-10-03
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2023-03-11
        • 2014-01-04
        • 1970-01-01
        • 2012-12-11
        • 1970-01-01
        相关资源
        最近更新 更多