Un modèle avec *default_scope* pour filtrer toutes les entrées obsolètes:
# == Schema Information
#
# id :integer(4) not null, primary key
# user_id :integer(4) not null, primary key
# end_date :datetime
class Ticket < ActiveRecord::Base
belongs_to :user
default_scope :conditions => "tickets.end_date > NOW()"
end
Maintenant, je veux obtenir quelque billet. Dans ce cas *with_exclusive_scope* est le chemin à parcourir, mais cette méthode est-elle protégée? Seulement cela fonctionne:
Ticket.send(:with_exclusive_scope) { find(:all) }
Une sorte de hack, n'est-ce pas? Alors, quelle est la bonne façon de l'utiliser? Surtout lorsque vous traitez avec les associations, c'est encore pire (étant donné qu'un utilisateur a de nombreux billets):
Ticket.send(:with_exclusive_scope) { user.tickets.find(:all) }
C'est tellement laid!!! - ne peut pas être les rails-les de façon!?