Schienen - wie zu verwenden reload-Methode?

Case1: Erstellen Sie einen neuen Datensatz für ein Modell mit der Zuweisung der zugehörigen Objekt(Status-Objekt statt Status.id) wie

    visit = Visit.create(:date => Date.today, :status => Status.first)
    visit.status_id #=> 1

Nach dem erstellen des Datensatzes

Ich versuche zu aktualisieren, wird das Attribut 'status_id' (Stand.id anstelle von Status-Objekt), aber es gibt den alten Wert sogar aufrufen erneut laden, nachdem das Objekt speichern. Beispiel:

    visit.status_id = Status.last.id
    visit.save
    visit.reload
    visit.status_id #=> 1

Wenn ich den Aufruf reload-Methode nach dem erstellen ist es wie erwartet funktioniert

    visit = Visit.create(:date => Date.today, :status => Status.first)
    visit.status_id #=> 1
    visit.reload
    visit.status_id = 2
    visit.save
    visit.status_id #=> 2

Case2: Wenn ich die Zuordnung der 'status_id' Wert anstelle des Status-Objekt, dann keine Notwendigkeit neu zu laden-Objekt und seine Arbeitsmethoden in Ordnung

    visit = Visit.create(:date => Date.today, :status_id => Status.first.id)
    visit.status_id #=> 1
    visit.status_id = 2
    visit.save
    visit.status_id #=> 2

Mit den beiden Fällen oben, Wann sollte ich das reload Methode? Sollte es vor oder nach save?

InformationsquelleAutor nishanthan | 2012-12-12

Schreibe einen Kommentar