Frage

Ich habe eine has_many: durch Beziehung Spieler Team durch Managements verknüpfen

.

Ich möchte auf die Teams Tabelle einen Zähler haben (ein bisschen wie ein Zähler-Cache), das mir sagt, wie viele neue Verbände dort seit Anfang der Woche gewesen. Natürlich wird nicht funktionieren Gegen Cache, weil es immer alle die Verbände geben, die jemals geschaffen wurden.

Ich habe versucht, von der zugehörigen Mannschaft Aktualisierung innerhalb des Managements Modell. Diese nie gelingt. Auch wenn der Zuwachs auf das zugehörige Team erscheint OK gespeichert werden, nachdem der Verein meines Zähler erstellt wird, ist immer noch 0 ist.

Ich habe auch versucht, einen Beobachter mit. Der Beobachter wurde genannt, wie ich erwartet hatte, ich war in der Lage, das Team zu holen, aber alle Aktualisierungen es, wieder, wurden nicht gespeichert.

Ich bin sicher, ich bin etwas fehlt offensichtlich! Was ist die Schienen Weg, um diese zu implementieren?

ich ein Setup Github um das Problem zu veranschaulichen, läuft rake spec fehl.

http://github.com/steveybaby/assoc_problem

War es hilfreich?

Lösung

In der Spec:

fanteam_spec.rb

it "should be able to create a fanteam" do
    @fanteam.save
    @fanteam.changes.should be(0)
    @fanteam.should be_valid
    @fanteam.players << Factory.build(:player)

    @fanteam.reload # this is what you are forgetting

    @fanteam.changes.should be(1)
  end

Im Grunde Ihre Beobachter aktualisieren denselben Datensatz, aber nicht das gleiche Objekt.

Andere Tipps

Ich vermute, dass das Problem ist, dass Sie das Zählerfeld changes genannt, die bereits ein Active Verfahren zum Speichern Änderungen an einem Datensatz Attribute seit dem letzten Inspektion. Versuchen Sie, den Namen dieses Feldes zu verändern und sehen, ob der Code funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top