Je suis sur Rails 2.3.5. Dans mon application, un utilisateur peut réserver un ou plusieurs créneaux horaires pour un jour spécifique. J'ai défini ce named_scope dans mon modèle à sous:named_scopes et tous
# day time slots
named_scope :for_day, lambda { |day|
if !day.blank?
{ :conditions => ['day_of_week = ?', day] }
end
}
j'utiliser pour récupérer tous les « créneaux horaires » disponibles en un jour. Cependant, j'ai une page où j'aimerais voir tous les emplacements réservés (en d'autres termes, les emplacements des autres utilisateurs aussi).
Alors, quand je l'appelle /slots
URL Je voudrais obtenir chaque emplacement réservé, quand, au lieu que j'appelle/utilisateur/2/slots J'ai besoin que ceux pour l'utilisateur 2.
J'ai ajouté cet itinéraire map.resources :users, :has_many => :slots
à mes itinéraires .rb et ce code à mon slots_controller.rb:
def index
if params[:user_id]
@slots = User.find(params[:user_id]).slots
else
@slots = Slot.all
end
end
S'il vous plaît noter qu'un utilisateur peut également voir les emplacements réservés d'un autre utilisateur seul.
Maintenant, quand j'essaie d'utiliser le: for_day champ nommé ci-dessus pour le tableau Slot.all je reçois:
undefined method for_day for #<Array:0x104441f60>
j'ai pu y remédier en ajoutant named_scope :all, :conditions => {}
au modèle d'emplacement, mais il semble une solution étrange pour moi.
Pourriez-vous m'aider?