Ich arbeite an einer API-only Rails 5 App - ja, ich weiß. Ich war eine Weile nicht in der Nähe von Rails, also machte ich etwas überfälliges Nachholen, als ich auf den guten, verschachtelten Hash der Parameter stieß, den ich völlig vergessen hatte. Sagen wir, ich will eine User
schaffen, ich dachte, dass ich mit den folgenden Parametern eine POST-Anforderung ausgeben würde (wir es JSON der Einfachheit halber machen):Format der params Struktur von Rails erwartet 5
{ "username": "myUsername", "password": "myPassword" }
Doch nach viel Trauer und googeln, entdeckte ich/erinnerte sich, dass ich soll folgendes passieren:
{ "user": { "username": "myUsername", "password": "myPassword" } }
die wiederum macht die folgende
def user_params
params.request(:user).permit(:username, :password)
end
glücklich.
Alles in allem bin ich damit einverstanden. Dies wird eine private API für eine mobile App sein, und ich erwarte nicht, sie für irgendjemanden zu öffnen. Ich habe jedoch andere (typischerweise erholsame ish-ähnliche) APIs im Internet gelesen und keine von ihnen hat das verschachtelte model
-Geschäft. Ich werde bald an einer öffentlichen API für ein anderes Projekt arbeiten, also habe ich mich gefragt, ob es einen bestimmten Grund gibt, diese Struktur zu verlangen, und wenn nicht, wie kann ich starke Parameter ohne die ganze Verschachtelung beibehalten.
Das bedeutet, ich kann 'user_params()' immer noch so verwenden und alle Vorteile und starken Parameter beibehalten, oder? – Morpheu5
Das ist richtig. –