How do i override a helper method from another Rails Engine gem?

476 views
Skip to first unread message

Kamil Chmielewski

unread,
Sep 11, 2012, 5:49:06 PM9/11/12
to rails...@googlegroups.com
I am trying to create my own navigation for rails_admin, and have the following inside an initializer in rails, however, it doesn't seem to be working. How can I override the main_navigation helper that resides in application_helper.rb inside the rails_admin gem?


require 'rails_admin'
require 'rails_admin/i18n_support'

RailsAdmin::ApplicationHelper.class_eval do

  include
RailsAdmin::I18nSupport

 
def main_navigation
    nodes_stack
= RailsAdmin::Config.visible_models(:controller => self.controller)
    nodes_stack
.group_by(&:navigation_label).map do |navigation_label, nodes|

      li_stack
= nodes.select { |n| n.parent.nil? || !n.parent.to_s.in?(nodes_stack.map { |c| c.abstract_model.model_name }) }.map do |node|
       
%{
           
<li data-model="#{node.abstract_model.to_param}">
             
<a class="pjax" href="#{url_for(:action => :index, :controller => 'rails_admin/main', :model_name => node.abstract_model.to_param)}">#{node.label_plural}</a>
           
</li>
            #{navigation(nodes_stack, nodes_stack.select { |n| n.parent.to_s == node.abstract_model.model_name }, 1)}
        }.html_safe
      end.join.html_safe

      li_stack +=%{<li data-model="extra-nav">
            <a class="pjax" href="/
import">Import</a>
          </li>}.html_safe

      if li_stack.present?
        li_stack = %{<li class='nav-header'>Kamil#{navigation_label || t('admin.misc.navigation')}</li>}.html_safe + li_stack
      end

      li_stack
    end.join.html_safe
  end
end
Reply all
Reply to author
Forward
0 new messages