Quelqu'un pourrait-il m'aider à trouver comment remplacer default_scope
.Surcharger le default_scope
À mon avis, je dois montrer tous matches
, pas seulement { where("match_date >= now()") }
J'ai besoin d'afficher tous les matches. J'ai quelques raisons d'utiliser default_scope. Je suis très nouveau dans Rails. J'ai essayé d'utiliser unscoped, mais ça n'a pas aidé ou je ne l'ai pas utilisé correctement. Aucune suggestion? Merci!
class Reservation < ActiveRecord::Base
belongs_to :bar_match
end
class BarMatch < ActiveRecord::Base
belongs_to :bar
belongs_to :match
has_many :reservations
end
class Match < ActiveRecord::Base
has_many :bars, through: :bar_matches
has_many :bar_matches, dependent: :destroy
default_scope { where("match_date >= now()") }
end
Contrôleur
@reservations = Reservation.where(user_id: current_user.id)
Voir
- @reservations.each do |reservation|
= reservation.bar_match.match
Mais comment puis-je mettre en œuvre dans mon cas. Je ne peux pas faire quelque chose comme @ reservations.each faire | réservation | = reservation.bar_match.match.unscoped.all –
Puis-je utiliser en quelque sorte unscoped in view? –
Vérifiez la réponse mise à jour –