我的回答可能不是你想要做什麼,但它可以是有幫助的。
我檢查了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
你試過使用靜態鏈接嗎? –