Ruby on rails 主动管理导航链接
除了注册页面/模型外,如何将自己的自定义链接动态添加到ActiveAdmin全局导航标题?例如,如果我想要一个链接,可以将用户指向我的主页。我通过将ActiveAdmin::MenuItem添加到当前的AdminAdmin控制器,成功地实现了这一点。比如说,Ruby on rails 主动管理导航链接,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,除了注册页面/模型外,如何将自己的自定义链接动态添加到ActiveAdmin全局导航标题?例如,如果我想要一个链接,可以将用户指向我的主页。我通过将ActiveAdmin::MenuItem添加到当前的AdminAdmin控制器,成功地实现了这一点。比如说, ActiveAdmin.register User, :name_space => :example_namespace do controller do private def current_menu
ActiveAdmin.register User, :name_space => :example_namespace do
controller do
private
def current_menu
item = ActiveAdmin::MenuItem.new :label => "Link Name", :url => 'http://google.com'
ActiveAdmin.application.namespaces[:example_namespace].menu.add(item)
ActiveAdmin.application.namespaces[:example_namespace].menu
end
end
end
我基本上创建了一个新的ActiveAdmin::MenuItem,并将其添加到当前的ActiveAdmin菜单中,使用名称空间example\u namespace,然后在当前的\u menu方法的末尾返回菜单。注意:current_menu是ActiveAdmin所期望的方法,因此不要更改它的名称。您可以添加任意数量的项目,每个项目都将转换为导航标题上的链接。注意:这适用于ActiveAdmin版本>0.4.3,因此,如果您想为版本进行挖掘,您可能需要自己进行挖掘。您可以在active admin初始值设定项中配置站点标题。例如:
config.site_title_link = "/"
这将为您提供一个指向根页面的链接。似乎是ActiveAdmin让它变得更简单了。我已升级到版本0.6.2,以下是您可以在导航中的任意位置添加自定义链接的方法(下面的示例将添加一个自定义菜单项和一个自定义下拉列表): 在#config/initializers/active#u admin.rb中
ActiveAdmin.setup do |config|
config.namespace :admin do |admin|
admin.build_menu do |menu|
menu.add :label => "My Custom Link", :url => "/", :priority => 0
menu.add :label => "Pages" do |pages|
pages.add :label => "Homepage", :url => "/admin/homepage"
pages.add :label => "About Us", :url => "/admin/about-us"
pages.add :label => "Facebook", :url => "http://www.facebook.com", :html_options => { :target => "_blank" }
end
end
end
end
如果您已经将“页面”注册为父菜单(即:在您的app/admin/文件夹中,一个具有菜单:priority=>2、父菜单:“页面”
)的模型,它也会自动保留这些页面
ActiveAdmin.register AdminPage do
menu :url => proc{ "#{AppConfig.url}/checkins/#{current_admin_user.try(:id)}" }
end
在这里,您可以使用URL参数中的任何db字段值来构造您自己的URL。无需使用
URL:->{“{request.base\u URL}/”}
Thank Man:)@jakub执行AppConfig