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
on 15.08.2008 08:06
on 15.08.2008 12:08
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 Daniel <Daniel.Heinzelmann@escad.de>
on 15.08.2008 12:53
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: rubyonrails-ug-bounces@headflash.com [mailto:rubyonrails-ug-bounces@headflash.com] Im Auftrag von Garret Alfert Gesendet: Freitag, 15. August 2008 12:08 An: rubyonrails-ug@headflash.com 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 Daniel <Daniel.Heinzelmann@escad.de> 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