2016-06-18 8 views
1

Mit Easy Post möchte ich überprüfen, ob die eingegebene Adresse eines Benutzers korrekt und echt ist, und dann eine Rückmeldung über die Gültigkeit geben.Schienen mit externer API und Benutzerfeedback

Meine Angst ist, dass wir einen API-Hangup haben, so dass der Benutzer auf die Rückmeldung bei der Einreichung warten muss, anstatt dass es bissig ist.

Ich kann dies mit ActiveJob umgehen, aber dann hat der Benutzer die Möglichkeit, schlechte Adressdaten einzugeben, und wir müssen den Kunden benachrichtigen, um zurückzukehren und ihren Fehler zu beheben.

Natürlich möchten wir unsere Kunden in Kontakt halten, aber wir möchten auch sicherstellen, dass ihr Einreichungsprozess bissig ist.

Was ist ein richtiger Weg, dies zu erreichen (Best Practice)? Verzögerter Job, oder lassen Sie ihn mit einer Zeitüberschreitung warten, um sicherzustellen, dass er nicht hängen bleibt?

Antwort

1

In Platanus haben wir die job notifier gem entwickelt. Es funktioniert mit ActiveJob und ermöglicht es Ihnen, asynchrones Feedback zurückzugeben. Mit diesem Juwel können Sie einen Benutzer die Adresse eingeben lassen und später über Fehler oder Erfolg informieren. Ich denke, es ist nicht ernst, den Fehler später zu korrigieren, wenn es kein ernstes Problem ist und wenn Sie das Werkzeug haben, das Sie erleichtert

+1

Das der genaue Ansatz schlug ich vor. Ich wusste nie, dass es dafür ein Juwel gibt. Readme.rb sieht vielversprechend aus. Danke vielmals!! – retgoat

0

Ich nehme an, dass Sie überprüfen können, ob die eingegebenen Daten im Hintergrund korrekt sind.

Zum Beispiel können Sie Adressdaten von JavaScript-Ereignis (onblur) erhalten und senden Sie es an den Endpunkt EasyPost von ActiveJob, und lassen Sie den Benutzer den Rest Ihres Formulars ausfüllen.

Während der Benutzer ein anderes Formularfelder ausfüllt, erhalten Sie eine Antwort von EasyPost und können die Felder mit grün (wenn es gültig ist) oder rot (wenn es nicht ist) markieren.

Auch Sie könnten entsprechende Fehlermeldung rendern.

Dieser Ansatz ermöglicht es Ihnen, die Anzahl der eingereichten Übermittlungen zu minimieren und die Nutzer zu binden.

0

Ich kann nicht sagen, dass ich eine spezifische Antwort auf Ihren Anwendungsfall habe. Aber hier ist der Ansatz, dem ich folgen würde.

Wenn die API für meine Anwendung wichtig ist, würde ich den Benutzer auf eine Seite umleiten, auf der sie darüber informiert werden, dass ihre Adresse validiert wurde. Dies würde sowohl meinem Webserver als auch meiner UX helfen. Da ich Heroku eine Zeit lang benutzt habe, weiß ich, dass Anfragen, die länger als 30 Sekunden dauern, beendet werden.

Ich würde auch auf die API schauen, um eine Möglichkeit zum Hinzufügen von AJAX-Validierung zu sehen.

Wie Sie jedoch sagten, würden Sie auch ActiveJob in Erwägung ziehen. Sie könnten ein Flag (meistens eine db-Spalte) auf dem Modell haben, um zu überprüfen, ob die Adresse gültig ist und während der Benutzer Ihre Anwendung umstellt informiert (wahrscheinlich mit einem statischen Banner oder irgendwo mit Ihrer Benutzeroberfläche), dass seine Adressvalidierung fehlgeschlagen ist.

Ich glaube, auf diese Weise hätten Ihre Benutzer eine gute Erfahrung, während Sie die Vorteile Ihrer Anwendung erkunden.

Verwandte Themen