2016-03-29 5 views
2

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?

Antwort

1

Fest ohne weitere Informationen zu diagnostizieren. Sie form_for @user, method: :post do |f| explizit Rails verwenden können, um anweisen, die POST-Methode zu verwenden.

+0

Welche Informationen hilfreich wäre? I war nicht sicher, was hilfreich wäre hinzuzufügen. – dlu

Verwandte Themen