【发布时间】:2011-06-05 00:48:45
【问题描述】:
我正在使用一个名为 Recover 的模型。在创建模型之前,我想保存布尔属性 Combo.occupied = true 使用 Recover.combo_id 属性作为参考。
看来我的 SQL 正在正确执行查询,但它没有保存此属性。如何保存 Combo.occupied = true?
恢复.rb:
before_create :checkin
受保护
def 签入 x = Combo.find_by_id(combo_id).occupied = 真的
结束
Rails 控制台:
为 127.0.0.1 开始 POST "/recovers" 在 2011-01-06 17:07:24 -0800
处理者 RecoversController#create as HTML
参数:{"utf8"=>"✓", "authenticity_token"=>"o1Iu3Y9/rVBOZPoDUgVP/tRfQ8GxbdWC40DbPq9YxUE=", "恢复"=>{"combo_id"=>"4", "电子邮件"=>"jz@marin.edu"}, “提交”=>“创建恢复”} 恢复 负载 (0.2ms) SELECT "recovers"."id" 从“恢复”到哪里 ("恢复"."email" = 'justin.zollars@marin.edu') 限制 1
恢复负载 (0.1ms) 选择 "recovers"."id" FROM "recovers" WHERE ("恢复"."combo_id" = 4) 限制 1
组合负载(0.5ms)选择“组合”。* FROM "combos" WHERE ("combos"."id" = 4) LIMIT 1 AREL (0.5ms) INSERT INTO “恢复”(“locker_number”,“email”, “请求”,“created_at”, “updated_at”、“combo_id”)值 (NULL,'justin.zollars@marin.edu', 空, '2011-01-07 01:07:24.287072', '2011-01-07 01:07:24.287072', 4) 重定向到 http://localhost:3000/recovers/14 完成 302 发现在 119 毫秒内
RecoversController#create
定义创建 @recover = Recover.new(params[:recover])
respond_to do |format| if @recover.save format.html { redirect_to(@recover, :notice =>'恢复已成功创建。') } format.xml { 渲染 :xml => @recover, :status => :created,
:location => @recover }
else format.html { render :action => "new" } format.xml { render :xml => @recover.errors, :status =>:unprocessable_entity } 结束
end结束
【问题讨论】:
-
您的 RecoversController#create 中似乎没有创建任何对象。可以发一下这个方法的内容吗?