Быстрее ли выполнять один запрос базы данных, который находит все результаты, необходимые для страницы, а затем выполняет несколько циклов с помощью инструкций if/else для извлечения того, что вы хотите показать в каждом разделе, или выполнить несколько запросов к базе данных, выбрав точные данные, которые вам нужны, а затем просто пропустите каждую из них отдельно?Оптимизация использования запросов к базе данных
Например:
@completed = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ? AND host_tasks.completed IS NOT NULL", params[:id]], :order => "tasks.position")
@incomplete = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ? AND host_tasks.completed IS NULL", params[:id]], :order => "tasks.position")
Затем цикл через каждый для отображения. Или просто:
@tasks = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ?", params[:id]], :order => "tasks.position")
Зацикливание через @tasks дважды и отображение только в том случае, если @ tasks.completed равно null, а не null?
+1 Как всегда, «это зависит». –