C’est un moyen vraiment utile de faire un Find dans Rails. Ci-dessous, vous avez un modèle Task qui recherche les tâches qui ne sont pas accomplies (C’est à dire : la colonne complete est à 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
Ceci est une meilleure façon de faire avec find_by_all. Remplacez :
@tasks = Task.find(:all, :conditions => ['complete = ?', false])
par
@tasks = Task.find_all_by_complete(false)
Si vous souhaitez trouver une tâche en utilisant find_by, pour trouver la dernière tâche incomplète. La ligne :
@task = Task.find(:first, :conditions => ['complete =?', false], :order => 'created_at DESC')
devient
@task = Task.find_by_complete(false, :order => 'created_at DESC')
La méthode find_by prend le paramètre order comme la méthode find.