Problem mit acts_as_versioned

Hallo,

ich habe ein Problem mit dem acts_as_versioned Plugin. Und zwar möchte
ich von einer Tabelle die “changes” heist jeweils die alten Versionen
eines Datensatzes in einer externen Tabelle (change_versions) ablegen
falls ein Datensatz editiert wird. Dies sollte ja mit dem
acts_as_versioned Plugin möglich sein. Über die in dem Plugin
hinterlegte Migration habe ich die neue “change_versions” Tabelle
erstellt. Dies hat auch wunderbar funktioniert. Daraufhin habe ich in
dem Model der zu versionierenden Tabelle “acts_as_versioned”
eingetragen. Auch die has_many und belongs_to Beziehungen zwischen den
beiden Tabellen sind in den jeweiligen Model’s eingetragen. Leider
bekomme ich jetzt beim abspeichern eines abgeänderten Datensatzes eine
Fehlermeldung (NoMethodError in ChangesController#update - undefined
method `changed?’ for #Change:0x4b12458). Die update Funktion im
Controller schaut wie folgt aus:

def update

@change = Change.find(params[:id])



respond_to do |format|

  if @change.update_attributes(params[:change])

    flash[:notice] = 'Change was successfully updated.'

    format.html { redirect_to(@change) }

    format.xml  { head :ok }

  else

    format.html { render :action => "edit" }

    format.xml  { render :xml => @change.errors, :status => 

:unprocessable_entity }

  end

end

end

Kennt jemand von euch diesen Fehler? Oder hat jemand schon mit dem
acts_as_versioned plugin gearbeitet und kann mir sagen wie dieses
richtig eingebunden wird (die Anleitungen die ich bisher über google
gefunden habe sind alle leider nicht sehr ausführlich…)?

Schon mal vielen Dank für eure Hilfe!

Viele Grüße

Daniel Heinzelmann

Hallo Daniel,

benutzt du das aktuelle Rails 2.1? In dieser Version wurde die Dirty
Objects
Funktionalität [1] eingeführt. Soviel ich weiß, nutzt acts_as_versioned
in
der aktuellsten Version dieses Feature und ist nicht abwärtskompatibel.

Gruß,
Garret Alfert

[1]
http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

2008/8/15 Heinzelmann D. [email protected]

Hallo Garret,

ich benutze Instant Rails. Das hatte noch das Rails 2.0.2 dabei. Nach
dem Update auf 2.1 funktioniert acts_as_versioned nun. Vielen Dank!!!

Grüße

Daniel


Von: [email protected]
[mailto:[email protected]] Im Auftrag von Garret
Alfert
Gesendet: Freitag, 15. August 2008 12:08
An: [email protected]
Betreff: Re: [Rubyonrails-ug] Problem mit acts_as_versioned

Hallo Daniel,

benutzt du das aktuelle Rails 2.1? In dieser Version wurde die Dirty
Objects Funktionalität [1] eingeführt. Soviel ich weiß, nutzt
acts_as_versioned in der aktuellsten Version dieses Feature und ist
nicht abwärtskompatibel.

Gruß,
Garret Alfert

[1]
http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

2008/8/15 Heinzelmann D. [email protected]

Hallo,

ich habe ein Problem mit dem acts_as_versioned Plugin. Und zwar möchte
ich von einer Tabelle die “changes” heist jeweils die alten Versionen
eines Datensatzes in einer externen Tabelle (change_versions) ablegen
falls ein Datensatz editiert wird. Dies sollte ja mit dem
acts_as_versioned Plugin möglich sein. Über die in dem Plugin
hinterlegte Migration habe ich die neue “change_versions” Tabelle
erstellt. Dies hat auch wunderbar funktioniert. Daraufhin habe ich in
dem Model der zu versionierenden Tabelle “acts_as_versioned”
eingetragen. Auch die has_many und belongs_to Beziehungen zwischen den
beiden Tabellen sind in den jeweiligen Model’s eingetragen. Leider
bekomme ich jetzt beim abspeichern eines abgeänderten Datensatzes eine
Fehlermeldung (NoMethodError in ChangesController#update - undefined
method `changed?’ for #Change:0x4b12458). Die update Funktion im
Controller schaut wie folgt aus:

def update

@change = Change.find(params[:id])



respond_to do |format|

  if @change.update_attributes(params[:change])

    flash[:notice] = 'Change was successfully updated.'

    format.html { redirect_to(@change) }

    format.xml  { head :ok }

  else

    format.html { render :action => "edit" }

    format.xml  { render :xml => @change.errors, :status => 

:unprocessable_entity }

  end

end

end

Kennt jemand von euch diesen Fehler? Oder hat jemand schon mit dem
acts_as_versioned plugin gearbeitet und kann mir sagen wie dieses
richtig eingebunden wird (die Anleitungen die ich bisher über google
gefunden habe sind alle leider nicht sehr ausführlich…)?

Schon mal vielen Dank für eure Hilfe!

Viele Grüße

Daniel Heinzelmann