我正在使用一个名为 Recover 的模型。在创建模型之前,我想使用 Recover.combo_id 属性作为引用保存 bool 属性 Combo.occupied = true。
看来我的 SQL 正在正确执行查询,但它没有保存此属性。如何保存 Combo.occupied = true?
恢复.rb:
rails 控制台:
恢复 Controller #create
最佳答案
您需要调用 save 将新值写入数据库:
def checkin
combo = Combo.find_by_id(combo_id)
combo.occupied = true
combo.save!
end
如果您使用
update_attribute
,这会更容易。另外,如果你有一个belongs_to关系,你可以省去 find
:belongs_to :combo
def checkin
if combo # true unless combo_id is nil
combo.update_attribute(:occupied,true)
end
end
请注意
update_attribute
绕过验证。如果您需要验证,请改用 update_attributes(:occupied=>true)
。关于ruby-on-rails - 如何使用回调更新另一个模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4621670/