2016-10-05 6 views
11

Verwendung von Rails 4.2.1 und Active Admin geben 1.0.0.pre2Filter nach Verfahren nach Modell in ActiveAdmin mit Parametern in

ich ein Apartment-Modell, das viele Belegungen hat. Ich möchte, dass Admins sehen können, ob sich eine Wohnung im Index mit Daten überschneidet, die als Params übergeben wurden. Ich habe eine Methode auf Apartment

Die gibt True zurück, wenn die Wohnung Belegungen hat, die sich mit zwei angegebenen Daten überschneiden. Die Methode date_range_overlap bei Belegung ist ziemlich selbsterklärend. Ich kann nicht herausfinden, wie man ActiveAdmins DSL dazu bringt, nach dieser Methode zu filtern oder sogar ein Formular zur Eingabe von Zufallsparametern zu erstellen.

Ich konnte eine Spalte setzen, die den booleschen Rückgabewert der Available_during-Methode im Index zeigt.

if params[:from] && params[:until] 
    column "available?" do |apt| 
    apt.available_during(params[:from], params[:until]) 
    end 
end 

Aber ich kann nur diese scheinen, um von Hand zu arbeiten, die von und bis params in der URL eingeben.

Wie kann ich ein beliebiges Suchformular platzieren, um den Benutzer an die richtigen Parameter zu senden? Oder noch besser, machen Sie einen Filter in der Seitenleiste, der diese Methode verwendet?

Antwort

2

Es sieht so aus, als ob ActiveAdmin über eine integrierte Methode zum Erstellen einer Datumsauswahl in einer Ansicht verfügt. Diese Dokumente finden Sie unter here. Das Beispiel zeigt, dass es mit einigen zufälligen Parametern verwendet wird, die Sie für Ihren Anwendungsfall ändern möchten.

form do |f| 
    f.input :from, as: :datepicker, 
    datepicker_options: { 
    min_date: "2013-10-8", 
    max_date: "+3D" 
    } 

    f.input :until, as: :datepicker, 
    datepicker_options: { 
    min_date: 3.days.ago.to_date, 
    max_date: "+1W +5D" 
    } 
end 
Verwandte Themen