Innerhalb einer Rails-Anwendung zu übergeben habe ich eine API-Controller, der AbfrageWie ein Array von param Werte über GET auf eine Controller-Aktion
module Api
class UserController < ApplicationController
def index
@users = User.where(query_params)
end
def query_params
params.permit(:id, :name)
end
end
end
ich mehrere IDs dieser Controller-Aktion Parameter akzeptiert geben wollen in der Lage sein über eine Anfrage erhalten.
api_users_path(id: User.my_scoped_selection.map(&:id))
dies eine URL mit dem ID-Array durch eckige Klammern
http://my.app/api/users?id[]=1
I auch im addressbar manuell eingeben
http://my.app/api/users?id=1,2,3
http://my.app/api/users?id=1&id=2&id=3
http://my.app/api/users?id[0]=1&id[1]=2&id[2]=3
Nichts davon korrekt Filter der Benutzer versucht haben angedeutet erzeugt, und ich bekomme alle Benutzer zurück.
Wie sollte ich eine URL formatieren, um ein Array von Param-Werten korrekt zu übergeben? Oder, wie sollte ich den Controller konstruieren, um mehrere Parameterwerte zu behandeln?
doh zu senden! Ich hatte nicht einmal gedacht, dass dies eine starke params-Frage ist, und war zu sehr auf das Format der URL konzentriert. Danke @kenny, das hat perfekt funktioniert! –
Sie sind willkommen =) –