2015-02-11 7 views
5

hinzufügen Ich habe ein Post-Modell, PostSource-Modell. Eine PostSource hat viele Posts, ein Post gehört zu einer PostSource.wie sortierte Elemente im Filter Dropdown in ActiveAdmin Schienen

Mit ActiveAdmin im Index Aktion der Post, ich bin ein Filter von PostSource Anzeige auf diese Weise:

filter :post_source, label: 'Source' 
filter :category, as: :select, collection: Category.order(:name).collect { |cat| [cat.name, cat.id] } 

mit der Steuerung als:

controller do 
    def scoped_collection 
    end_of_association_chain.includes(:post_source) 
    end 
end 

es die Quelle zeigt, aber wird nicht in einer sortierten Reihenfolge angezeigt. Wie sortiere ich den Filter in diesem Fall?

ich versuchte, indem sortierbar, um auf Filter, aber es scheint nicht

+0

Nicht sicher, dass ich Ihre Frage verstehe. Versuchen Sie den ersten Filter oder den zweiten zu sortieren? – LazyMonkey

+0

Ich möchte alle Quellen sortieren, während sie angezeigt werden. – inquisitive

+0

Ihre Frage, ist die Antwort auf meine Frage :) Danke – Aleks

Antwort

4

zu arbeiten, wenn Sie versuchen, die ersten Filter zu sortieren (‚post_source‘), könnten Sie einfach eine Sammlung hinzufügen, wie Sie in Ihrem zweite Zeile und sortieren innerhalb eines Blocks.

filter :post_source, label: 'Source', collection: proc { PostSource.order(:name) } 

Diese Syntax könnte auch im zweiten Beispiel als Alternative verwendet werden.

+0

Ja, das hilft. Dies ist eine ziemlich alte Anforderung, aber soweit ich mich erinnere, hatte ich versucht, die Methodenreihenfolge in PostSource aufzurufen, aber es hat nicht geklappt. Ich habe diesen Code ausprobiert, und es funktioniert wie ein Zauber. Anyways thanks .. :) – inquisitive

+0

Froh, es zu hören! – LazyMonkey