2017-10-26 2 views
0

Ich habe benutzerdefinierte sortierbare Spalte "Status" im Index, wie kann ich es sortierbar machen?Activeadmin benutzerdefinierte sortierbare Spalte in Index

index do 
    selectable_column 

    column :title 
    column :counter 
    column 'Status', do |purchase| 
     if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc 
     'ended' 
     elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc 
     'active' 
     else 
     purchase.status 
     end 
    end 
    end 

Antwort

0

ein Problem auf diese Weise gelöst

 column 'Status', sortable: :status do |purchase| 
      if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc 
      'ended' 
      elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc 
      span class: "purchase-status-active" do 
       'active' 
      end 
      else 
      purchase.status 
      end 
     end 


     controller do 
     def find_collection(options = {}) 
      if params[:order] == 'status_desc' 
      super.reorder(status: :desc, expiration_date: :desc) 
      elsif params[:order] == 'status_asc' 
      super.reorder(status: :asc, expiration_date: :asc) 
      else 
      super 
      end 
     end 
     end 
0

Nach the docs sollten Sie in der Lage sein, einen :sortable Schlüssel zum column Aufruf passieren etwa so:

index do 
    # SNIP 
    column 'Status', sortable: :status do |purchase| 
     # SNIP 
    end 
    end 
+0

Ich weiß, aber wie Sie es benutzerdefinierte Spalte sehen, die auf expiration_date Feld abhängt –

0

Die Dokumentation für Indextabelle benutzerdefinierte Sortierung ist auf der index as table page.

Verwandte Themen