Est-il possible d'avoir une portée avec des arguments facultatifs?

Est-il possible d'écrire une portée avec des arguments optionnels, de sorte que je peux appeler le champ d'application avec et sans arguments?

Quelque chose comme:

scope :with_optional_args,  lambda { |arg|
  where("table.name = ?", arg)
}

Model.with_optional_args('foo')
Model.with_optional_args

Je peux vérifier dans le lambda bloc si un argument est donné (comme décrit par Unixmonkey), mais sur l'appel de la portée sans argument, j'ai eu une ArgumentError: wrong number of arguments (0 for 1)

OriginalL'auteur tonymarschall | 2012-04-26