2013-03-22 59 views
0

我想有恆定UsersHelper:控制器在常量之後加載?

CONSTANT_CONTROLLER = [["Configuration", MerchantsController], ["System", SystemStatusController]] 

但自從我使用AuthenticatedSystem服務器failes有:

undefined method `requires_role' for MerchantsController:Class 

我想包括AuthenticatedSystem但它並沒有奏效。當我有方法:

def controller_display_name_to_real_name 
    [["Configuration", MerchantsController], ["System", SystemStatusController]] 
end 

一切都OK。我猜這些常量是在控制器沒有加載時提前加載的。這是正確的嗎?

+1

我認爲你是對的。我發現的一個解決方案是隻將字符串設置爲常量(例如「MerchantsController」)。然後,當我需要使用它時(即,當所有常量都被加載時),我稱之爲「MY_CONSTANT.constantize」。但也許有更好的解決方案。 – pierallard 2013-03-22 11:57:50

+0

感謝您的迴應聽起來像一個很好的解決方案 – 2013-03-22 12:13:33

回答

0

嘗試如下

Controller.constantize 

你必須constantize控制器的名字。