我使用controller.controller_name
来查看我所在的位置,并在我的菜单上设置了active
类。如何获取父母的controller_name?
问题是我在我的路线中有一个namespace: :admin
...我需要检查是否在任何继承自AdminController
的控制器中。现在,controller_name
只会拉起子控制器的名字......但我真的需要它说'管理员'。
如何访问它继承的控制器的名称?
我使用controller.controller_name
来查看我所在的位置,并在我的菜单上设置了active
类。如何获取父母的controller_name?
问题是我在我的路线中有一个namespace: :admin
...我需要检查是否在任何继承自AdminController
的控制器中。现在,controller_name
只会拉起子控制器的名字......但我真的需要它说'管理员'。
如何访问它继承的控制器的名称?
只需使用parent
:
controller.class.parent
如果我正确理解你的问题,你可以这样做:
controller.class.superclass
这应返回AdminController
如果您当前的控制器确实是从AdminController
继承。
此外,controller.class
应该给你完全命名空间的控制器名称。
尝试controller.ancestors.include?(AdminController)
我喜欢这个最好的,但我要如何检查是否'Admin'匹配? '.instance_of?'和'.type_of'似乎没有工作 – Tallboy
Nevermind its just'=='....谢谢! – Tallboy
@Tallboy'=='将在你调用'to_s'时工作,否则它将无法正常工作。 – Gerry