So habe ich eine API, die ich abfragen und eine Ergebnisliste zurückgeben kann. Meine App verarbeitet dann die Ergebnisse in ActiveRecord wie Objekte in einem Array. Ich zeige diese Objekte in einer Ansicht in ihrer Gesamtheit an, aber ich möchte auch die Ergebnisse filtern.Filtern eines Nicht-Active-Records-Modells auf die richtige Weise
Was ist der beste Weg, dies zu tun?
Derzeit mache ich etwas wie folgt aus:
Ansicht
= form_tag path(resource), method: :get, class: "form-inline", role: "form" do
.col-sm-3
= label_tag "See unlimited usage only?"
.clearfix
= select_tag "usage", options_for_select(resource.class::USAGE, params[:usage]), class: "form-control", prompt: "All usage limits"
Controller
def show
@media_deals = resource.media_deals
if params[:usage].present?
filter = params[:usage]
if filter == "unlimited"
@media_deals = @media_deals.find_all{|d| d.download_limit_display.casecmp("Unlimited") == 0}
elsif filter == "limited"
@media_deals = @media_deals.find_all{|d| d.download_limit_display.casecmp("Unlimited") != 0}
end
end
end
Beachten Sie, dass es wird mehr als ein Filter sein, nicht nur der eine gezeigt.
Können Sie ein Beispiel geben, wie dies von Ansicht zu Controller bitte umgesetzt werden würde? – Robbo
@Robbo, ich aktualisierte die Antwort – Almaron
Danke. Ich werde es versuchen – Robbo