作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用依赖于同一模型中可用的另一个变量/值的三元运算符在我的 MySQL 数据库中设置属性值。
item.rb
与 auction.rb
具有 belongs_to
关系。拍卖实例可以是 online_only
或不是。我正在尝试在名为 manual_close
的项目实例上设置一个属性,该属性取决于拍卖是否为 online_only
。
所以我有以下内容:
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
输出: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/
我是一名优秀的程序员,十分优秀!