2012-05-15 8 views
8

w aktywnej stronie Administrator show, Mam dwa panele, z których pierwszym jest podstawowym rekord, drugi jest związany informacji (przez has_many) tak show wygląda następująco:Sortowanie table_for w szynach activeadmin

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

Czy mogę sortować ten wysoki-niski (lub niski-wysoki) w kolumnie kwoty?

Aktualizacja: Znalazłem źródło demo (https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb), które wydaje się mieć sortowanie, ale kiedy przejdziesz do rzeczywistej strony demo, to nie działa. Czy ta funkcja może być zepsuta? Czy jest w pobliżu praca?

Odpowiedz

11

Jedyny sposób, w jaki znalazłem to było trochę hacky. ActiveAdmin przekaże nazwę kolumny i asc/desc za pomocą skrótu params, a następnie możesz dodać to do zapytania.

Pamiętaj też, aby przekazać "sortable: true" do table_for call.

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

Świetne rozwiązanie, niestety opcja 'sortable: true' nie wpłynęła na mnie na stronach programu z aktywnym resouce administratora. Chociaż widzę to w kodzie źródłowym i powinno działać. –

+0

oh nvm, działa świetnie. Po prostu zapomniałem o 'sortable:: column_name' w moim przypadku. –

3

z szynami 4.2, opartych na @idrinkpabst, zrobiłem co następuje:

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 

Jest bardziej wytrzymała wersja:

  • pozwala nazwę kolumny z podkreślenia
  • wsparcia " no sort param "
  • pracuje z szynami 4.2