我的回答可能不是你想要做什么,但它可以是有帮助的。
我检查了rails_admin.gem
,我发现有两种方法负责渲染侧边栏菜单。
def main_navigation
nodes_stack = RailsAdmin::Config.visible_models(controller: controller)
node_model_names = nodes_stack.collect { |c| c.abstract_model.model_name }
nodes_stack.group_by(&:navigation_label).collect do |navigation_label, nodes|
nodes = nodes.select { |n| n.parent.nil? || !n.parent.to_s.in?(node_model_names) }
li_stack = navigation nodes_stack, nodes
label = navigation_label || t('admin.misc.navigation')
%(<li class='dropdown-header'>#{capitalize_first_letter label}</li>#{li_stack}) if li_stack.present?
end.join.html_safe
end
上述方法负责获取的车型名单,特别是:
def navigation(nodes_stack, nodes, level = 0)
nodes.collect do |node|
model_param = node.abstract_model.to_param
url = url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
level_class = " nav-level-#{level}" if level > 0
nav_icon = node.navigation_icon ? %(<i class="#{node.navigation_icon}"></i>).html_safe : ''
li = content_tag :li, data: {model: model_param} do
link_to nav_icon + capitalize_first_letter(node.label_plural), url, class: "pjax#{level_class}"
end
li + navigation(nodes_stack, nodes_stack.select { |n| n.parent.to_s == node.abstract_model.model_name }, level + 1)
end.join.html_safe
end
这样你就可以patch
:
nodes_stack = RailsAdmin::Config.visible_models(controller: controller)
其次负责菜单(又名li
)渲染项方法这种方法来获得你所需要的。
module RailsAdmin
module ApplicationHelper
def main_navigation
# your code
end
end
end
rails_admin.gem module
附:我爱你,可以从rails doctrine约monkey patching
阅读的内容:
这种权力常常被人们嘲笑为根本吃不消仅仅 凡人程序员来处理。
你想添加链接到侧边栏或静态链接? –
@farhatmihalko我想添加我的会议展览的链接。 – hcarreras
你试过使用静态链接吗? –