1
我的数据库中选择子集有任务,其中有分配了涉及员工完成任务(除其他事项外)。用户使条目,它始终有一个任务。我在入口创建代码中发现一个错误,导致员工无法自动添加到作业列表中;我想编写一个迁移程序,为每个为某项任务输入条目并且没有任何条目的员工创建分配。通过优雅的属性
这是我目前的做法:
Task.all.each { |task|
assigned_employees = task.assignments.map(&:employee)
task.entries.select{ |entry| assigned_employees.exclude?(entry.employee) }.map(&:employee).uniq.each { |orphan_employee|
task.assignments.create(employee: orphan_employee, task: task)
}
}
的选择到MAP到uniq的是丑陋的。我可以更优雅地做到这一点吗?值得注意的是:entry.employee是经历另一个类的委托。
编辑:我想我会回来解决这个问题;一位高级程序员将此调用重写为使用连接和采摘。