This is a really useful way to do a Find in Rails. Below is a Task model that searches for tasks that haven’t been completed (i.e. the complete column is false).
      
        
        
  class TaskController < ApplicationController
  def incomplete
    @tasks = Task.find(:all, :conditions => ['complete = ?', false])
  end
  def last_incomplete 
    @task = Task.find(:first, :conditions => ['complete =?', false], :order => 'created_at DESC')
  end
end 
 
       
There is a better way to achieve this with find_by_all. Just replace
      
        
        
  @tasks = Task.find(:all, :conditions => ['complete = ?', false])
 
 
       
with
      
        
        
  @tasks = Task.find_all_by_complete(false)
 
 
       
If you just want to find one Task then use find_by, so to find the latest incomplete task the line
      
        
        
  @task = Task.find(:first, :conditions => ['complete =?', false], :order => 'created_at DESC')
 
 
       
becomes
      
        
        
  @task = Task.find_by_complete(false, :order => 'created_at DESC')
 
 
       
The find_by method takes the order parameter just like the find method does.