9
有兩種型號:檢查至少一個記錄:在給定的屬性設置爲true
class Task < ActiveRecord::Base
has_many :subtasks
end
class Subtask < ActiveRecord::Base
belongs_to :task
end
子任務有設置爲true,如果子任務完成布爾屬性。
如何檢查任務是否至少有一個完成的子任務?
有兩種型號:檢查至少一個記錄:在給定的屬性設置爲true
class Task < ActiveRecord::Base
has_many :subtasks
end
class Subtask < ActiveRecord::Base
belongs_to :task
end
子任務有設置爲true,如果子任務完成布爾屬性。
如何檢查任務是否至少有一個完成的子任務?
最簡單的方式就是將
task.subtasks.where(:completed => true).exists?
如果你定義的子任務completed
範圍,這可能縮短爲
task.subtasks.completed.exists?
這兩項將觸發數據庫查詢,所以如果你已經有子任務加載(task.association(:subtasks).loaded?
)它可能會更快地操作紅寶石對象通過一些像這樣
task.subtasks.any? {|subtask| subtask.completed?}