如何获取父的controller_name?

时间:2017-06-22 00:19:24

标签: ruby-on-rails ruby ruby-on-rails-5

我正在使用controller.controller_name查看我的位置,并在菜单上设置active课程。

问题是我的路线中有namespace: :admin ......我需要检查我是否在任何继承自AdminController的控制器中。现在,controller_name只会提取子控制器的名字......但实际上我需要它来说'admin'。

如何访问它继承的控制器的名称?

3 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题,你可以这样做:

controller.class.superclass

如果您当前的控制器确实从AdminController继承,则应返回AdminController

此外,controller.class应该为您提供完全命名空间的控制器名称。

答案 1 :(得分:1)

尝试controller.ancestors.include?(AdminController)

答案 2 :(得分:0)

只需使用parent

controller.class.parent