我使用ActiveAdmin作为CMS。我希望我的用户能够创建一些页面,然后这些页面应该在名为" Help"的父页面下的活动管理菜单中动态添加。但是,我无法训练如何注册新创建的页面,因为register_page
方法仅在服务器启动时运行。
有没有办法动态构建新创建的页面的路径?或者有没有办法动态运行register_page
(可能在proc?中)而不必重新启动?
稍后编辑:
问题在于我没有为新创建的页面设置路由,因此我收到错误消息,指出在创建页面后找不到admin_page_title_path
。这是因为我在register_page
中执行after_create
:
ActiveAdmin.register Page do
after_create do |page|
ActiveAdmin.register_page page.title do
menu :parent => 'Help'
content :title => proc { I18n.t("active_admin.manual") } do
columns do
column do
panel "#{raw(page.title)}" do
render :partial => "admin/pages/content", :locals => {page: page}
end
end
end #columns
end
end
end
end
如果我使用Rails.application.reload_routes!然后建立了路线,但这也清除了我的菜单,我基本上得到了菜单所在地的所有页面的列表。
重建我尝试过的菜单的所有方法看起来都有些破解。所以我假设应该有一种方法来重建那条路线而不是干预重置资源和重新添加菜单项。