gpt4 book ai didi

ruby-on-rails - 零的 Rails 范围测试

转载 作者:行者123 更新时间:2023-12-04 10:05:02 27 4
gpt4 key购买 nike

我有一张费用表。它有一个invoice_id 列。

我想要 2 个范围 - 一个用于计费费用,一个用于未计费。
我以为我可以测试一下 invoice_id 是否为零。

scope :notbilled, where(:invoice_id == nil)
scope :billed, where(:invoice_id != nil)

但是,这行不通。

有任何想法吗?

谢谢!

最佳答案

对于第一个,您需要使用哈希语法:

scope :notbilled, where(:invoice_id => nil)

第二个要求您使用原始 sql:
scope :billed, where('invoice_id is not null')

您也可以跳到第二个 arel 以避免编写原始 sql,但这是一个高级主题,最终比原始 sql 可读性差。

使用直接相等是行不通的,因为这些表达式会被立即求值,并且由于不涉及变量而被转换为它们的 bool 等价物,因此它们将被解释为
scope :notbilled, where(false)
scope :billed, where(true)

关于ruby-on-rails - 零的 Rails 范围测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660646/

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