gpt4 book ai didi

ruby-on-rails - Rails update_attribute 没有保存

转载 作者:行者123 更新时间:2023-12-04 07:40:31 25 4
gpt4 key购买 nike

我遇到了一个奇怪的事情。我有一个模型 GuardianUpdate,它的字段“read”是一个 bool 值。当我在记录上调用 update_attribute(:read, true) 时,rails 无法真正更新记录。

这是我的控制台输出:

1.9.3p0 :026 > g = GuardianUpdate.find(1)
GuardianUpdate Load (0.7ms) SELECT `guardian_updates`.* FROM `guardian_updates` WHERE `guardian_updates`.`id` = 1 LIMIT 1
=> #<GuardianUpdate id: 1, update_id: 2, guardian_id: 11, read: true, created_at: "2012-04-21 04:06:45", updated_at: "2012-04-21 04:06:45">
1.9.3p0 :027 > g.update_attribute(:read, false)
(0.3ms) BEGIN
Update Load (0.4ms) SELECT `updates`.* FROM `updates` WHERE `updates`.`id` = 2 LIMIT 1
(0.1ms) COMMIT
=> true
1.9.3p0 :028 > g.reload
GuardianUpdate Load (0.5ms) SELECT `guardian_updates`.* FROM `guardian_updates` WHERE `guardian_updates`.`id` = 1 LIMIT 1
=> #<GuardianUpdate id: 1, update_id: 2, guardian_id: 11, read: true, created_at: "2012-04-21 04:06:45", updated_at: "2012-04-21 04:06:45">
1.9.3p0 :029 >

如您所知,任何地方都没有 UPDATE sql 语句。这是我的 GuaridanUpdate 模型:

class GuardianUpdate < ActiveRecord::Base
belongs_to :update
belongs_to :guardian
end

有什么想法吗?

我应该提到 update_column(:read, true) 有效,完全没有问题。

最佳答案

belongs_to :update 正在创建一个 update 访问器,它会覆盖同名的内部 rails 方法。该方法负责实际保存对现有对象的更改。

重命名关联,您应该没问题。 Rails 假设会引发一个 DangerousAttributeName 异常来警告您 - 不确定为什么没有发生这种情况

关于ruby-on-rails - Rails update_attribute 没有保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com