2017-01-13 3 views
1

Ich weiß, dass dies nicht "Best Practice" ist, aber das ist eine Art temporäre Reparatur/Experiment. Ich versuche eine Aufzeichnung auf Heroku mit der Rails-Konsole zu aktualisieren, aber wenn ich sie speichere, rolle ich sie einfach zurück.Aktualisieren eines Heroku-Datensatzes mit der Rails-Konsole

UserAdmin = User.find_by(email: "[email protected]") 
UserAdmin.admin = true 
UserAdmin.save 

Das Ergebnis ist:

(0.6ms) BEGIN 
    (0.6ms) BEGIN 
    User Exists (0.6ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 3) LIMIT 1 
    User Exists (0.6ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 3) LIMIT 1 
    User Exists (0.5ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."user_name") = LOWER('example') AND "users"."id" != 3) LIMIT 1 
    User Exists (0.5ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."user_name") = LOWER('example') AND "users"."id" != 3) LIMIT 1 
    (0.4ms) ROLLBACK 
    (0.4ms) ROLLBACK 

Bin ich diesen falsch gehen? Gibt es einen besonderen Grund, warum die Aufzeichnung nicht auf Heroku gespeichert wird?

+0

Etwas verrückt. Entweder haben Sie schlechte Daten in Ihrer Tabelle oder Ihre Validierungen sind durcheinander. Fügen Sie das Modell hinzu und versuchen Sie, die Daten in der Tabelle zu überprüfen, indem Sie "User.where (email:" [email protected] "). Count" ausführen, um zu sehen, ob Sie Duplikate haben. Auch Ihre Benennung ist sehr falsch - Bezeichner, die mit einem Großbuchstaben beginnen, sind Konstanten in Ruby, es sei denn, Sie benennen eine Klasse mit "snake_case". – max

+1

Versuchen Sie es mit 'UserAdmin.save!' (Der Knall wird eine Ausnahme auslösen) und sehen Sie, welche Validierungsfehler, wenn überhaupt, Sie erhalten. – mmichael

Antwort

1

Was bekommen Sie, wenn Sie tun: (. Ich weiß, das noch keine Antwort, aber es so geschrieben, weil es als Kommentar zu unübersichtlich wäre)

user_admin = User.find_by(email: "[email protected]") 
    user_admin.admin = true 
    user_admin.valid? 
    user_admin.errors.full_messages 

+0

Das gab mir, was ich brauchte, obwohl nicht technisch eine Antwort Ich fand es heraus. Stellt sich heraus, um zu speichern, musste ich das Passwort des Datensatzes zur Verfügung stellen, ich bin nicht sicher, ob das eine Heroku-Sache ist oder weil ich ein Kennwort habe, aber ein Kennwort wurde benötigt. – tfantina

Verwandte Themen