gpt4 book ai didi

Ruby 检查集合中的至少一个元素是否满足条件

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:27 24 4
gpt4 key购买 nike

我的模型有以下关系

class User < ActiveRecord::Base
has_many :controllers
end

class Controller < ActiveRecord::Base
belongs_to :user
end

Controller 有一个名为 is_active 的 bool 值。

如果属于特定用户对象的所有 Controller 对象都是 is_active false,我想引发异常。

不幸的是,我很难将这句话写入代码。

# if for all controllers is_active false is met, raise exception
# ~> need to find one controller which is active
array = []
User.find(id).controllers.each do |c|
array << c.is_active
end
unless array.include?('true')
raise ...
end

感觉有一种更rubisch的写法。

最佳答案

如果 is_active 是一个数据库列而不是你可能想要写的:

Controller.exists?(user_id: id, is_active: true)

如果是需要计算:

User.find(id).controllers.any?(&:is_active)

关于Ruby 检查集合中的至少一个元素是否满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39619746/

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