Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1134 connectés 

  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  Associations dynamiques ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Associations dynamiques ?

n°2126113
moxfulder
PSN : MoxFulder_
Posté le 13-02-2012 à 09:33:51  profilanswer
 

Salut,
 
Je débute en Ruby/Rails et je voudrais faire qqch de "spécial".
 
J'ai 2 classes :
Lesson (table Lessons) et Person (table people)
 
Un "lesson" à un lien "teacher" sur person. Elle a aussi un lien "students" sur person.
 
Jusque là, pas de soucis. J'arrive a afficher ma liste d'étudiant et mon prof pour un cours.  
 
La lesson a aussi une date.
 
Ce que j'aimerai faire maintenant, c'est afficher toutes les lessons pour un range de date pour un étudiant. Une idée comment faire ? Genre en gros, afficher toutes les lessons pour l'année passée pour une personne
 

Code :
  1. class Lesson < ActiveRecord::Base
  2.         has_and_belongs_to_many :people
  3.         belongs_to :teacher, :class_name => "Person", :foreign_key => "person_id"
  4. end
  5. class Person < ActiveRecord::Base
  6.         has_and_belongs_to_many :lessons
  7. end

mood
Publicité
Posté le 13-02-2012 à 09:33:51  profilanswer
 

n°2126639
bobmaerten
Posté le 15-02-2012 à 15:07:23  profilanswer
 

Salut,
 
le plus simple pour faire ça, c'est d'utiliser un scope.
 
Dans la définition de ton model, en imaginant que le champs date s'appelle occurs_on :

Code :
  1. class Lesson < ActiveRecord::Base
  2.         has_and_belongs_to_many :people
  3.         belongs_to :teacher, :class_name => "Person", :foreign_key => "person_id"
  4.         scope :before_current_year, lambda { where(' occurs_on < "'+ Time.now.year.to_s + '-01-01" ') }
  5. end


Comme le précise la doc, on utilise lambda car il y a une évaluation à faire  
http://guides.rubyonrails.org/acti [...] tml#scopes
 
Puis tu peux l'utiliser dans ton controlleur :

Code :
  1. p = Person.find(1)
  2. @olddates = p.lessons.before_current_year


Message édité par bobmaerten le 15-02-2012 à 15:10:17
n°2126641
moxfulder
PSN : MoxFulder_
Posté le 15-02-2012 à 15:19:51  profilanswer
 

cool merci je vais essayer. Je ne connaissais pas les scopes.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  Associations dynamiques ?

 

Sujets relatifs
trier des données dynamiques dans Excelhtml/css : des "lignes à hauteur dynamiques" ?
Problème d'affichage dans champs textes dynamiques (POUR UN DECOMPTE)"Capturer" des données dynamiques d'une page web ?
liste déroulantes dynamiques liées et insertion dans BDD (PHP/SQL)Problème de librairies dynamiques
Autorisations d'accès dynamiquesNews dynamiques avec Modx
FORMULAIRE : Listes sélections dynamiquesLe HTML pour des pages dynamiques ?
Plus de sujets relatifs à : Associations dynamiques ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR