2012-12-12 16 views
8

Supponiamo che io sono un modello ActiveAdmin con due scopi in questo modo:ActiveAdmin: Modifica indice Tabella Sulla base di ambito attivo

ActiveAdmin.register Book do 

    scope :all, default: true 
    scope :smith #all books by author 'smith' 

    index do 
    column :title 
    column :published_year 
    column :author 
    end 
end 

Non voglio/bisogno della colonna 'autore', quando l'utente ha selezionato il ' ambito di Smith.

Quindi esiste un modo per accedere all'ambito corrente e mostrare solo la colonna autore in uno degli ambiti? Suppongo che per questo esempio potrei usare una vista personalizzata e controllare il contenuto reale dei dati, ma spero che ci sia un modo più semplice e migliore.

risposta

15

si può provare qualcosa di simile

index do 
    column :title 
    column :published_year 
    column :author unless params['scope'] == 'smith' 
    end 
+0

Tu sei l'uomo. –

+0

Grazie .. mi ha salvato il tempo e accettato .. :) – Sai

1

Hai anche accesso all'oggetto @current_scope, e si può fare @ current_scope.scope_method per ottenere il metodo di applicazione sottostante

Problemi correlati