gpt4 book ai didi

mysql - 将数据库中的值设置为 False 取决于其他值 True/False

转载 作者:行者123 更新时间:2023-11-29 06:13:50 24 4
gpt4 key购买 nike

我正在尝试使用依赖于同一模型中可用的另一个变量/值的三元运算符在我的 MySQL 数据库中设置属性值。

item.rbauction.rb 具有 belongs_to 关系。拍卖实例可以是 online_only 或不是。我正在尝试在名为 manual_close 的项目实例上设置一个属性,该属性取决于拍卖是否为 online_only

所以我有以下内容:

项目.rb:

def as_json(**options)
json = {
"manual_close" => self.manual_close?
}
end

def manual_close?
!online_only? false : self.manual_close
end

def online_only?
auction && auction.online_only?
end

item.online_only? == false 然后 item.manual_close 应该 == false 如果 item.online_only? == true 然后 item.manual_close 可以是 true 或 false。

一些rails c输出:

enter image description here

a = 拍卖,i = 元素。 json 部分是正确的,但是当我执行 item.manual_close 时,它应该是 false 而不是 true。

如有任何帮助,我们将不胜感激。

最佳答案

我认为这里的问题是您没有更新数据库中的模型。

定义一个名为 manual_close? 的方法只会覆盖方法 manual_close?(带问号),不会影响 manual_close 属性在你的数据库中。

您必须显式更新数据库中的 manual_close 才能获得所需的结果。

i.update(manual_close: i.manual_close?)

我建议从 Auction 模型的 after_save 回调中调用这一行。这样,每次更新拍卖模型时,元素模型都会正确反射(reflect)它需要的状态。

关于mysql - 将数据库中的值设置为 False 取决于其他值 True/False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988225/

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