2013-04-16 84 views
1

我想在定義ActiveAdmin頁面時使用幫助程序方法。特別是:Rails ActiveAdmin DSL幫助程序

ActiveAdmin.register Catalog do 
    menu parent: menu_title(:catalog) 
end 

其中

def menu_title(s) 
    proc { I18n.t("active_admin.menus.#{s}") } 
end 

我應該把menu_title?把它放在ViewsHelper不起作用,文檔似乎沒有提到這個問題。

回答

0

好的,這是一個不好的解決方案。

在ActiveAdmin初始化文件中,添加在底部(外塊):

require Rails.root.join('lib', 'active_admin_dsl.rb') 

創建文件lib/active_admin_dsl.rb具有以下內容:

class ActiveAdmin::DSL 
    def menu_title(s) 
    proc { I18n.t("active_admin.menus.#{s}") } 
    end 

    # or whatever 
end 

另一個不太難看但更麻煩的解決方案是編寫一個模塊,然後將其手動包含在每個已註冊的資源中:

ActiveAdmin.register Foo do 
    include DSLHelper 
end 

但是,如果您擁有批次的資源,那肯定是不切實際的。