2017-06-22 71 views
0

我使用controller.controller_name来查看我所在的位置,并在我的菜单上设置了active类。如何获取父母的controller_name?

问题是我在我的路线中有一个namespace: :admin ...我需要检查是否在任何继承自AdminController的控制器中。现在,controller_name只会拉起子控制器的名字......但我真的需要它说'管理员'。

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

回答

0

只需使用parent

controller.class.parent 
+0

我喜欢这个最好的,但我要如何检查是否'Admin'匹配? '.instance_of?'和'.type_of'似乎没有工作 – Tallboy

+0

Nevermind its just'=='....谢谢! – Tallboy

+0

@Tallboy'=='将在你调用'to_s'时工作,否则它将无法正常工作。 – Gerry

2

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

controller.class.superclass 

这应返回AdminController如果您当前的控制器确实是从AdminController继承。

此外,controller.class应该给你完全命名空间的控制器名称。

0

尝试controller.ancestors.include?(AdminController)