我想在定义ActiveAdmin页面时使用辅助方法。特别是:
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 :(得分:1)
好的,这是一个丑陋的解决方案。
在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
但是当你拥有很多的资源时,这当然是不切实际的。