2012-07-22 12 views
9

Pracuję z ActiveAdmin i muszę dostosowywać niektóre widoki i natknąłem się na kilka scenariuszy, które uważam, że robię źle.Widok domyślny wyświetlania ActiveAdmin

Dodaję dodatkową tabelę do widoku spektaklu (komentarze do postów). Wymaga to przepisania całej tabeli atrybutów, a następnie dodania mojego panelu. Czy istnieje sposób na dostosowanie widoków bez utraty domyślnej treści?

Chciałbym również dodać tabelę powiązanych elementów w widoku spektaklu, który nie musi być dostosowany, czy istnieje sposób na dołączenie domyślnej opowieści, która normalnie byłaby w widoku indeksu z domyślnymi akcjami i stronicowaniem?

+0

To pytanie brakuje konkretów jak istniejącego kodu, który Pytający próbował, lepiej otworzyć nowy – prusswan

+0

@Cristian : Byłoby lepiej, aby otworzyć nowe pytanie, zamiast edytować tę osobę. –

+0

@Ryan Dodałem tylko tag, w przeciwnym razie mam dokładnie to samo pytanie. – Cristian

Odpowiedz

24

Po wykopaniu w source code of Active Admin, Znalazłem sposób załatać tę

show do 
    default_main_content 
    panel "Your Added Stuff" do 
     # Add stuff here 
    end 
    end 

Oczywiście jest to nieudokumentowane i może być uznane za hack, ale chyba każde inne rozwiązanie istnieje, to działa.

Uwaga: Aby to zrobić w akcji formularza (nowych i edycji):

form do |f| 
    f.inputs 
    # Other inputs here 

    f.actions 
    end 
+1

To jest świetne! Jednak rozwiązanie "nowe i edytuj" działa tylko wtedy, gdy wstawiasz niestandardowe * dane *. Co jeśli chcesz dodać znacznik div lub paragraph? Niestety, nie będziesz mógł tego zrobić z ActiveAdmin DSL (o ile mi wiadomo) ... ale możesz wstawić dowolny kod HTML za pomocą formtastic. ** [Oto jak] (http://stackoverflow.com/questions/10524012/insert-a-non-input-row-into-a-formtasic-form) **. – mdpatrick

2

Parę obszary dokumentacji może pomóc:

  1. Zobacz Customize the Show Page, Customizing the Index Page, Customizing the Form, i Custom Pages. Przykładem dostosowywania ekranu pokazują:

    ActiveAdmin.register Ad do 
        show do |ad| 
        default_main_content 
        h3 ad.title 
        end 
    end 
    
  2. Zobacz Produktów akcję niestandardową w sekcji Custom Controller Actions dokumentacji. Przykład:

    action_item :only => :show, :if => proc{ current_admin_user.super_admin? } do 
        "Only display this to super admins on the show screen" 
    end 
    

NBdefault_main_content nie istnieje już w dokumentacji, ale to działa dobrze.

+0

Wszystko, co określasz w bloku 'show do ...', zastępuje wszystkie domyślne działania, które automatycznie zbudował Aktywny administrator. Jeśli więc chcesz dodać dodatkowe pole, utkniesz na całej stronie od zera ... – Cristian

6

Zamiast default_main_content, można też po prostu pętli kolumn modelu tak:

ActiveAdmin.register Ad do 
    show do 
    attributes_table do 
     default_attribute_table_rows.each do |field| 
     row field 
     end 

     # Custom bits here 

    end 
    end 
end 
Powiązane problemy