gpt4 book ai didi

ruby-on-rails - has_many.size 大于 0 的 Rails?

转载 作者:行者123 更新时间:2023-12-04 05:55:34 25 4
gpt4 key购买 nike

所以这有效并获取了我需要的数据:

  def has_function
services = []
Service.find_each do |s|
if s.functions.size > 0
services << s
end
end
return services
end

但是,该方法返回一个数组,我打算将它链接到别处:

Service.has_function.visible.includes(:layer)
undefined method `where' for #<Array:0x007faad487a970>

我如何检查这个并返回可链接的东西?

最佳答案

您将希望在连接中执行该爵士乐操作,以便它全部保留在 ActiveRecord 中。另外...这会快得多,因为它是单个 SQL 查询。只要确保您有适当的索引即可。

Service.joins(:functions).visible.includes(:layer)

如果你想检查任何不存在的东西,说一个计数 > 1;你必须做小组/有。

Service.
joins(:functions).
select('services.*, count(functions.id) as function_count').
group('services.id').
having('function_count > 2')

关于ruby-on-rails - has_many.size 大于 0 的 Rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396119/

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