gpt4 book ai didi

ruby - 如何通过 ruby​​ 中的特定对象字段拆分对象数组?

转载 作者:数据小太阳 更新时间:2023-10-29 08:40:38 26 4
gpt4 key购买 nike

这段代码很丑,如何做得更好?

todos = Todo.all

@todos_1 = Array.new
@todos_2 = Array.new
@todos_3 = Array.new

todos.each do |doc|
if doc.category == nil
@ntodos_1 << doc
end
if doc.category == "something"
@todos_2 << doc
end
if doc.frame == "whatever"
@todos_3 << doc
end

最佳答案

您可以使用 Todo.group("category").order("category") 来组织结果集,然后遍历它,知道当类别更改时您处于下一个分组.

或者,为 Todo 模型创建范围可能会有用:

class Todo < ActiveRecord::Base
scope :something, where(:category => "something")
scope :whatever, where(:category => "whatever")
end

这将允许您将结果分配给实例变量,而不是遍历 Controller 中的所有结果:

@something = Todo.something
@whatever = Todo.whatever

关于ruby - 如何通过 ruby​​ 中的特定对象字段拆分对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7242317/

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