I was arguing if this episode was even worth creating a project for. Decided to create since it would be so quick to make.
The episode talks about how you can replace:
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
With:
class TaskController < ApplicationController
def incomplete
@tasks = Task.find_all_by_complete(false)
end
def last_incomplete
@task = Task.find_by_complete(false, :order => 'created_at DESC')
end
end
Attention should be drawn to the find_all_by_complete
method used. This is a shortcut for the first find
methods with all of the options passed in. The word that follows the by is the column that is in the Tasks table. You can then pass in the value of the records for that column you want returned. If you want only a single record that matched the conditions, then you would omit the all
from find_all_by_complete
making it find_by_complete
. If you were finding a record by its name, then you doing this:
Task.find_by_name('bob')