2011-12-08 12 views
6

Używam https://github.com/sferik/rails_admin do obsługi mojego interfejsu administratora.RailsAdmin - Dostosowywanie własnych filtrów

Jest możliwe, aby filtrować model oparty na aktualnych kolumn, które istnieją w tym modelu (id, created_at etc.)

Chcę, aby móc dodać niestandardowe filtry dla stowarzyszeń.

Na przykład:

Kiedy jestem odkrywania „Miasta” modelu Chcę, aby móc pokazać tylko miast, które mają jeden lub więcej projektów.

Mogę to zrobić, dodając nową kolumnę do miast, zwaną has_projects jako boolean, która zostanie ustawiona na true, gdy istnieje co najmniej jeden projekt, ale czuję, że musi istnieć czystszy sposób na zrobienie własnego niestandardowego filtry?

+0

Zobacz https://stackoverflow.com/questions/26180943/in- rails-admin-how-can-i-filter-on-an-asocjacja-count –

Odpowiedz

-1

Ostatnio często przeglądałem the docs, nie wierzę w to, że funkcjonalność pozwalająca na obsługę tego bardziej elegancko istnieje.

+0

Chcesz się rozwijać? Po prostu łączenie z dokumentami jest kiepską formą. – XanderStrike

2

Możesz spróbować użyć wyliczenia. Zobacz https://github.com/sferik/rails_admin/wiki/Enumeration

użyłem dla belongs_to stowarzyszenie, jak następuje:

field :partner_id, :enum do 
    enum do 
    Partner.all.collect {|p| [p.name, p.id]} 
    end 
end 

A w widoku listy, dodał:

list do 
    filters [:partner_id] 
    ... 
end  
+4

Nie wydaje się, aby dotyczyło to pytania. Podajesz możliwe wartości do filtrowania/wyboru dla istniejącego pola bazy danych, ': partner_id'. OP pyta o filtrowanie w oparciu o zapytanie: "pokaż mi miasta z jednym lub większą liczbą powiązanych projektów". –