2013-07-11 16 views
8

ActiveAdmin docs powiedzieć, że mogę zastąpić nawigacja narzędzie tak:Rails ActiveAdmin - pobierz current_admin_user w nawigację narzędzia?

ActiveAdmin.setup do |config| 
    config.namespace :admin do |admin| 
    admin.build_menu :utility_navigation do |menu| 
     menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank } 
     admin.add_logout_button_to_menu menu # can also pass priority & html_options for link_to to use 
    end 
    end 
end 

mówi się również, że wyświetlacz domyślny zawiera adres e-mail bieżącego użytkownika. Jak otrzymuje adres e-mail bieżącego użytkownika? Kiedy próbuję zastąpić wartość menu.add label wartością current_admin_user, pojawia się błąd, który mówi, że current_admin_user jest niezdefiniowany. Jak uzyskać dostęp do informacji o aktualnie zalogowanym użytkowniku z pliku konfiguracyjnego? W jaki sposób ActiveAdmin robi to za kulisami?

Odpowiedz

9
config.namespace :admin do |admin| 
     admin.build_menu :utility_navigation do |menu| 
     menu.add :label => proc{ display_name current_active_admin_user }, 
        :url => proc{ edit_admin_admin_user_path(current_active_admin_user) } ,#link_to current_active_admin_user, 
        :id  => 'current_user', 
        :if  => proc{ current_active_admin_user? } 
     admin.add_logout_button_to_menu menu 
     end 
    end 
+0

Dziękuję za kod. Czy możesz wyjaśnić, dlaczego działa za kulisami i dlaczego mogłem dostać błąd, który dostałem? – Kvass

+0

działa z powodu użycia proców, które są wywoływane w potrzebnym kontekście, tak że current_admin_user jest zdefiniowany w momencie wywołania proc. – Fivell

+0

OK, fajne dzięki. Również rodzaj niezwiązanego q - jeśli blok jest proc (do mojego zrozumienia), dlaczego nie mogę przekazać w bloku, np. ': if => {current_active_admin_user? } 'i pomiń' proc' przed nim? Co dokładnie robi "proc" przed nim? – Kvass

3

Tylko spróbuj:

ActiveAdmin.setup do |config| 
    config.namespace :admin do |admin| 
    admin.build_menu :utility_navigation do |menu| 
     menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", 
             html_options: { target: :blank } 
     admin.add_current_user_to_menu menu 
     admin.add_logout_button_to_menu menu 
    end 
    end 
end 
Powiązane problemy