2017-06-22 32 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)