2012-03-28 23 views

Trả lời

19

Điều đơn giản nhất có thể sẽ là

task.subtasks.where(:completed => true).exists? 

Nếu bạn định nghĩa một phạm vi completed trên subtasks này có thể được rút ngắn xuống còn

task.subtasks.completed.exists? 

Cả hai sẽ cháy một truy vấn cơ sở dữ liệu, vì vậy nếu bạn đã có các subtask được nạp (task.association(:subtasks).loaded?) có thể sẽ nhanh hơn để thao tác các đối tượng ruby ​​qua somethig như

task.subtasks.any? {|subtask| subtask.completed?} 
Các vấn đề liên quan