2016-11-02 2 views
0

Hallo, also ich habe eine App, die gut funktioniert vor Ort, aber sobald ich es auf Heroku geschoben habe, habe ich Probleme.Rails App auf Heroku Status 500 interner Serverfehler (Es tut uns leid, aber etwas ging schief)

Heroku LINK: https://sleepy-garden-73993.herokuapp.com
GitHub REPO: https://github.com/kbachand/ginger_ails

FEHLER IN KONSOLE, wenn die Seite INSPECT: fehlgeschlagen Ressource laden: der Server mit dem Status 500 (Internal Server Error) reagiert

HOW DOPPELT AUSGABE:
-Klicken Sie auf "überprüfen Sie Ihre Adresse", ENTER-Adresse: 202 tryon st; Postleitzahl: 28207 (dies ist in unserem Servicebereich)
- Klicken Sie auf "wählen Sie Ihre Krankheit" und wählen Sie eine (alle funktioniert)
- Klicken Sie auf "Kauf-Kit", und es wird Sie zur Anmeldung oder Anmeldung auffordern. Sie können sich anmelden, wenn Sie möchten, aber meine Anmeldung ist [email protected] und Passwort: surfsup714 - Sobald Sie sich anmelden klicken Sie auf "Kauf Abhilfe Kit" und es sollte eine Ansicht, die zeigt Ihnen alle Artikel im Warenkorb und ermöglicht es Ihnen, über Stripe zu leeren oder zu kaufen. Aber stattdessen erhalten Sie den Fehler.

Heroku LOG:

2016-11-02T18:15:02.693028+00:00 app[web.1]: [1m[36mCart Load (1.4ms)[0m [1mSELECT "carts".* FROM "carts" WHERE "carts"."id" = $1 LIMIT 1[0m [["id", 1]] 
2016-11-02T18:15:02.696486+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::DatatypeMismatch: ERROR: argument of WHERE must be type boolean, not type integer 
2016-11-02T18:15:02.695276+00:00 app[web.1]: [1m[35mUser Load (1.8ms)[0m SELECT "users".* FROM "users" WHERE (1) LIMIT 1 
2016-11-02T18:15:02.695572+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms (ActiveRecord: 4.6ms) 
2016-11-02T18:15:02.696484+00:00 app[web.1]: 
2016-11-02T18:15:02.696487+00:00 app[web.1]:            ^
2016-11-02T18:15:02.696486+00:00 app[web.1]: LINE 1: SELECT "users".* FROM "users" WHERE (1) LIMIT 1 
2016-11-02T18:15:02.696488+00:00 app[web.1]: : SELECT "users".* FROM "users" WHERE (1) LIMIT 1): 
2016-11-02T18:15:02.696488+00:00 app[web.1]:  app/controllers/carts_controller.rb:35:in `show' 
2016-11-02T18:15:02.696489+00:00 app[web.1]: 
2016-11-02T18:15:02.696489+00:00 app[web.1]: 
2016-11-02T18:18:42.858131+00:00 heroku[router]: at=info method=GET path="/" host=sleepy-garden-73993.herokuapp.com request_id=5c66a6cc-7de8-43b6-92c3-51b63a3d3ab7 fwd="104.139.26.81" dyno=web.1 connect=1ms service=18ms status=200 bytes=6966 
+0

Sie brauchen nur 'User.find (params [: id])' in Zeile 35 von carts_controller.rb –

+0

Ich hatte das und es hat nicht funktioniert. Es gab einen Kommentar, der gelöscht werden musste, der besagt, dass dies hinzugefügt werden soll: @user = User.find_by (id: params [: id]), das funktioniert. Als Entwickler auf der Junior-Ebene würde ich gerne wissen, warum es so sein muss, so zu arbeiten, wie Sie gerade getippt haben. –

+0

'User.find_by_xyz (xyz: 1)' sucht nach dem Attribut, das nach 'find_by_' kommt. In diesem Fall "xyz". Wenn Sie nur nach 'find()' suchen, wird nach dem Primärschlüssel gesucht, was in Ihrem Fall wahrscheinlich 'id' ist. –

Antwort

0

Die wichtigen Bits auf dem Protokoll sind:

„Active :: StatementInvalid (PG :: DatatypeMismatch: ERROR: Argument der WHERE-Typ boolean sein muss, nicht ganzzahligen Typ "

Darunter liest der Fehler auf app/controllers/carts_controller.rb:35 https://github.com/kbachand/ginger_ails/blob/master/app/controllers/carts_controller.rb#L35

auf, dass Linie Sie haben:

@user = User.find_by(id: params[:id]) 

So sieht es aus wie params[:id] eine ganze Zahl ist, aber die id Spalte ist ein boolean.

Wenn bei Ihrer schema.rb suchen Ihre Spaltentypen zu überprüfen, erkannte ich, Ihnen die devise Juwel installiert haben, so sollten Sie devise Helfer verwenden, um die Benutzer zu tun, anstatt sie manuell zu authentifizieren:

https://github.com/plataformatec/devise#controller-filters-and-helpers

Lassen Sie mich wissen, wenn das hilft!

+0

vielen Dank dafür! Ich werde definitiv anfangen, die Geräte zu benutzen, die mein Leben sowieso erleichtern werden! –

+0

@KeithBachand froh zu helfen! Würde es Ihnen etwas ausmachen, die Antwort zu akzeptieren? – rebagliatte

Verwandte Themen