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
.