2012-05-15 11 views
8

In una pagina di amministrazione spettacolo attiva, ho due pannelli, il primo è il disco primario, informazioni secondo essere associata (da has_many) in modo show si presenta così:Ordina un table_for in rotaie activeadmin

panel "Max Amount" do 
    table_for user.max_amount do 
    column 'Amount', :amount 
    column 'time', :updated_at 
    end 
end 

Posso ordinare questo alto-basso (o basso-alto) sulla colonna quantità?

Aggiornamento: Ho trovato la fonte per la demo (https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb) che sembra avere l'ordinamento ma quando si va al sito demo effettivo non funziona. Questa caratteristica è forse rotta? C'è un work-around?

risposta

11

L'unico modo in cui ho trovato di farlo era un po 'hacky. ActiveAdmin passerà nel nome della colonna e asc/desc tramite l'hash params, quindi potrai aggiungerlo alla tua query.

Inoltre, assicurarsi di passare "ordinabile: true" nella tabella_for chiamata.

panel "P&L" do 
    table_for Quote.order(params[:order].gsub('_', ' ')), sortable: true do 
    column("Revenue", sortable: :revenue) { |quote| number_to_currency quote.revenue } 
    column("Profit", sortable: :profit) { |quote| number_to_currency quote.profit } 
    end 
end 
+0

Ottima soluzione, purtroppo l'opzione 'sortable: true' non ha avuto effetto per me su una pagina di visualizzazione di un reso amministratore attivo. Anche se lo vedo nel codice sorgente e dovrebbe funzionare. –

+0

oh nvm, funziona benissimo. Ho appena dimenticato l'ordinabile:: nome_colonna nel mio caso. –

3

Con rotaie 4.2, sulla base di @idrinkpabst, ho fatto la seguente:

table_for group.devices.order(
    # Support for column name with underscore 
    # Support "no sort param" 
    (params[:order] ? params[:order] : '').gsub('_asc', ' asc').gsub('_desc', ' desc') 
), sortable: true do 
    # Directly using symboles and not using sortable: 
    column :presence 
    column :serial_number 
    column :apk_version 
    column :firmware_version 
end 

E 'una versione più robusta:

  • permette nome di colonna con sottolineatura supporto
  • " no sort param "
  • funziona con binari 4.2