2017-12-15 1 views
0

Ich versuche, einen Benutzerwert (two_weeks) zu true zu setzen, nachdem eine E-Mail an den Benutzer gesendet wurde. Dies macht es so, dass der Benutzer niemals dieselbe Email zweimal erhält. Ich habe Probleme, den Benutzerwert erfolgreich zu speichern, nachdem die E-Mail gesendet wurde. Dies ist der Code in meinem PagesController:Wie ändert man einen Benutzerwert in Ruby & Devise?

def send_two_week 
    user = Admin.find_chaps(User.all.where(two_week:"false")) 
    UserMailer.two_week(user).deliver 
    user.two_week = true 
    user.save 
    redirect_to "/admin" 
end 

Die E-Mail sendet, aber der Wert des Benutzers two_weeks ändert sich nicht. Jede Hilfe wäre willkommen.

Antwort

0

Versuchen Sie, die Methode zu debuggen. Platziere binding.pry vor user.save und starte die Seite. Überprüfen Sie in der Konsole, ob die Werte aktualisiert wurden, und führen Sie dann user.save aus. Sehen Sie, ob es gespeichert wird. Oder Sie erhalten den Fehler, der Ihnen beim Debuggen hilft. Versuchen Sie user.errors, um die Fehlermeldungen zu sehen.Versuchen Sie user.save!, damit es den Fehler wenn nicht erfolgreich ist.

+0

Ah, perfekt. Vielen Dank! Es stellte sich heraus, dass ich andere Benutzerwerte hatte, die nicht damit zusammenhingen und das Speichern verhinderten. –

0

Fangen Sie Ihre Ausnahmen von der Konsole zu sehen oder speichern setzen! Fehler auf, durch Speichern

Der beste Weg ist, sollten Sie immer Ihre Ausnahmen behandeln.

Verwandte Themen