モデルを更新していないdatamapperに問題があります。問題なくモデルを作成して保存できます。私はraise_on_save_failure
を有効にして戻り値update
をチェックしましたが、エラーは表示されません。ここでDatamapper "Update"はレコードを更新しません
はモデルです:それはコントローラで更新された場合
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
そして、ここでは、次のとおりです。
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
コントローラは常にtrueを返し、エラーがでそこになることはありませんupdate
呼び出された場合エラーリスト:debug
に設定されたdatamapperログは、user
とuser_profile
を取得するためのクエリはSELECT
のクエリのみを表示します。なぜ私はsave
新しく作成されたモデルをできるようになりますが、同じモデルupdate
に許可されていないのですか?
チェックしてダブルチェックします。属性を新しい値に確実に更新しています。 – nathan