Ich arbeite an einer Anwendung für die Beurteilung der Arbeit von Studenten. Wenn ein Student die meiste Zeit einen neuen Beitrag erstellt, verwendet Rails das POST-Verb und das Leben ist gut. Wenn die Arbeit jedoch verspätet ist und die Post als fehlend bewertet wurde, versucht Rails, sie (mit der gleichen Route) mit dem PATCH-Verb anstelle von POST zu erstellen, und das Erstellen der Post schlägt fehl.Schienen verwendet PATCH, wenn ich erwarten würde, dass es POST verwenden
I Fehlermeldung, die ich in Heroku Logbuch sehen ist:
ActionController::RoutingError (No route matches [PATCH] "https://stackoverflow.com/users/55/posts”)
Soweit ich den Unterschied zwischen den beiden Situationen sagen kann, ist die Existenz einer Instanz eines Score, wenn Rails den Patch verwenden entscheidet Verb. Das Bewertungsmodell enthält diese Zeile:
Könnte dies für den Unterschied im Verhalten verantwortlich sein? Ich dachte, es könnte, aber es ist nicht Post-Objekt erstellt, wenn der Score für die fehlende Zuordnung erstellt wird (die Art, wie ich dies überprüft wurde, indem Sie Post.where(user: score.user)
bis bin/rails c
eingeben. Das Ergebnis war ein leeres Array.
Gibt es einen Weg Rails zu zwingen, eine POST zu tun, wenn es will einen PATCH tun?
Welche Informationen hilfreich wäre? I war nicht sicher, was hilfreich wäre hinzuzufügen. – dlu