2017-03-25 2 views
0

Ich möchte sehen, ob meine Variable unterscheidet sich von der entsprechenden Datensatz in der Datenbank.Ich bin bewusst, 'attribute'_changed? method, aber es funktioniert nur, wenn Sie den Datensatz über die Variable aktualisiert.Rails überprüfen, ob die Variable von Datensatz unterscheidet

Beispiel

user = User.first # name = bar 
u.update(name: "foo") 
u.name_changed? # => true 

jedoch in diesem Fall (Integrationstests zum Beispiel)

u = User.first # name = bar 
User.first.update(name: "foo") 
u.name # => 'bar' 
u.name_changed? #false 
u.reload 
u.name_changed #false 

Ich mag überprüfen, ob mein Variable u in einigem Attribute von User.first unterscheidet, die Veränderung war nicht durch.

Antwort

1

Es ist nichts eingebaut. Sie können nur einen anderen Benutzer aus der Datenbank laden und ihre Attribute vergleichen.

u = User.first # name = bar 
User.first.update(name: "foo") 
u.name # => 'bar' 
u2 = User.find(u.id) 
u.name == u2.name # => false 
Verwandte Themen