Two models:
class Task < ActiveRecord::Base
has_many :subtasks
end
class Subtask < ActiveRecord::Base
belongs_to :task
end
Subtask have boolean attribute that set to true if subtask is complete.
How can i check if a task has at least one completed subtask?
The simplest possible thing would be
task.subtasks.where(:completed => true).exists?
If you define a completed
scope on subtasks this could be shortened to
task.subtasks.completed.exists?
Both of these will fire a database query, so if you already have the subtasks loaded (task.association(:subtasks).loaded?
) it will probably be quicker to manipulate the ruby objects via somethig like
task.subtasks.any? {|subtask| subtask.completed?}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With