執行單個數據庫查詢可以更快速地找到所需的頁面結果,然後通過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然後不爲空?
+1與往常一樣,「取決於」。 – 2010-10-13 11:15:56