Ich habe Probleme mit Datamapper, ein Modell nicht zu aktualisieren. Ich kann Modelle ohne Probleme erstellen und speichern. Ich habe raise_on_save_failure
aktiviert und überprüft den Rückgabewert von update
aber sehe keine Fehler. HierDatamapper "Update" aktualisiert Datensatz nicht
ist das Modell:
class UserProfile
include DataMapper::Resource
attr_accessor :id, :wants_hints, :is_beta_user
property :id, Serial #auto-increment integer key
property :is_beta_user, Boolean
property :wants_hints, Boolean
has 1, :user, :through => Resource
end
Und hier ist, wo es in der Steuerung aktualisiert:
if user = User.get(request.session[:user])
if request.params[:user_profile]
beta = request.params[:user_profile].has_key?('is_beta_user')
hints = request.params[:user_profile].has_key?('wants_hints')
user.user_profile.update({:is_beta_user => beta, :wants_hints => hints}) # returns true
Log.puts user.user_profile.errors.each {|e| Log.puts e.to_s} # returns empty list []
end
end
Wenn der Controller genannt wird update
immer wieder wahr, und es gibt nie Fehler in die Fehlerliste. Das Datamapper-Protokoll, das auf :debug
festgelegt ist, zeigt nur die SELECT
Abfragen zum Abrufen der user
und user_profile
und das ist alles. Warum könnte ich save
ein neu erstelltes Modell, aber nicht update
das gleiche Modell?
Überprüft und doppelt überprüft. Es aktualisiert definitiv Attribute zu neuen Werten. – nathan