假设以下规则
manager has_many serial_tasks
serial_task has_many tasks
task belongs_to project
现在我有一位经理,我如何有效地查询所有项目' id?
这是我写的,但我认为这不是一种优雅的方式。
project_ids =
manager.serial_tasks.map{|st|
st.tasks.map{|t|
t.project.id
}
}.flatten
答案 0 :(得分:1)
你可以添加
has_many :tasks, through: :serial_tasks
到Manager类。查询应该非常简单。
如果您真的想获得ID,那么您可以执行以下操作:
project_ids = manager.tasks.pluck(:id)