bun*_*ufi 1 ruby activerecord ruby-on-rails
我的任务是确定记录子集的所有布尔属性是否都是true. 使用后sum,我希望有一个类似的方法来处理布尔值。然而,我找不到这样的东西。
我觉得答案很可能非常清晰、直接,并且可以通过简单的谷歌搜索获得,但我无法想出正确的短语来搜索它。
我想要实现的目标的示例:
[
#<User id: 1, name: "John", arborist: true>,
#<User id: 2, name: "Ben", arborist: true>,
#<User id: 3, name: "Betty", arborist: false>,
]
Run Code Online (Sandbox Code Playgroud)
应该返回false
[
#<User id: 1, name: "John", arborist: true>,
#<User id: 2, name: "Ben", arborist: true>,
#<User id: 3, name: "Betty", arborist: true>,
]
Run Code Online (Sandbox Code Playgroud)
应该返回true
目前我正在使用count.
all_arborists? = ( User.count == User.where(arborist: true).count )
Run Code Online (Sandbox Code Playgroud)
它给了我结果,但我觉得其中的内容超出了我的头脑所能理解的范围。
您可以简单地检查数据库中是否有一个非树艺师:
all_arborists = !User.exists?(arborist: false)
Run Code Online (Sandbox Code Playgroud)
您可以将其定义为类方法,rails magic 将使其在所有范围内可用:
class User
def self.all_arborists?
!exists?(arborist: false)
end
end
User.where(some_condition: foo).all_arborists?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |