私はRecoverというモデルを使っています。モデルを作成する前に、Recover.combo_id属性を参照としてboolean属性Combo.occupied = trueを保存したいと思います。コールバックを使用して別のモデルを更新するにはどうすればよいですか?
私のSQLはクエリを正しく実行していますが、この属性は保存されていません。どうすればCombo.occupied = trueを保存できますか?
recover.rb:
before_create:
が
DEF X = Combo.find_by_id(combo_id).occupied = 真
端をチェックインを保護チェックイン
Railsコンソール:
がPOSTを開始 RecoversController#で127.0.0.1 処理
-0800 17時07分24秒2011年1月6日には、 "/回復" HTML
パラメータとして作成します:{ "UTF8" => "✓"、 "authenticity_token" => "o1Iu3Y9/rVBOZPoDUgVP/tRfQ8GxbdWC40DbPq9YxUE ="、 "回復" => { "combo_id" => "4"、 "電子メール" => "[email protected]"}、 "コミット" => "リカバー作成"}リカバリー ロード(0.2ms)SELECT "回復" "ID" FROM "回復" WHERE ( "回復"。 "電子メール" = '[email protected] arin.edu ')LIMIT 1
は、Load(0.1msを回復) ( "回復"。 "combo_id" = 4)LIMIT 1
コンボ・ロード(0.5ミリ秒を "回復" を "回復"。 "ID" を選択) "combos"を選択してください* "combos" WHERE( "combos"。 "id" = 4)LIMIT 1 AREL(0.5ms)INSERT INTO "回復"( "locker_number"、 "email"、 "リクエスト」、 "のcreated_at"、 "updated_atの"、 "combo_id") (NULL、 '[email protected]' NULL、 '2011-01-07 01:07:24.287072' 値、 「に2011- 01-07 01:07:24.287072 '、4) http://localhost:3000/recovers/14にリダイレクトされましたDEF @recover = Recover.new([:回復]のparams)を作成を作成119ms
RecoversController#で発見302を完成回復」
respond_to do |format| if @recover.save format.html { redirect_to(@recover, :notice =>
が正常に作成されました。 ')} 形式です。XML {レンダリング:XML => @recover:ステータス=>:作成、
:場所=> @recover}
else format.html { render :action => "new" } format.xml { render :xml => @recover.errors, :status =>
:unprocessable_entity} 端
end
端
RecoversController#createにオブジェクトが作成されていないようです。このメソッドの内容を投稿できますか? – apneadiving
確かです。その完了 –