Bonjour !
Je débute dans Rails (ça fait une semaine) et je créer un version "rough" d'une application que j'aimerais développer. Voilà mon problème, j'ai créé un modèle Machine et un modèle Service. Machine :has_many services et Services:belongs_to machine.
Je n'ai pas redéfinis les routes pour éviter d'avoir à appeler un machines/1/services/1. J'aimerais dans un onglet, afficher mes machines avec, pour information, le service suivant et le dernier service réalisé. Ca c'est plutôt facile. Ensuite, j'aimerais, dans mes services, en sélectionnant une machine, afficher les services associés.
Là j'aime un peu moins ma solution. En fait, j'ai fait une action Show_services dans mon Controller Machines et à l'appel de cette action, avec un petit ajax, je remplis une div services avec un render :partial de @machine.services.
Ce qui m'embête dans ce cas, c'est de devoir aller modifier mon controller machines et non mon controller services pour afficher les services d'une machine. Mais jusque là je me suis débrouillé.
Maintenant là ou je suis un peu paumé, c'est que j'ai une page d'accueil sur laquelle j'aimerais afficher les prochains services à effectuer. J'ai créer des named_scopes dans le model de mes services et ensuite, je les appels dans mon controller www (accueil de mon appli) sous l'action "index". Seulement quand j'affiche, je n'accède qu'aux services et nom à la machine pour laquelle ce service doit être effectué.
Voilà mes scopes :
Comme vous le voyez, j'ai fait des include. Mais quand je regarde dans la console serveur de ruby, il fait en fait deux requêtes : une SELECT sur services et une SELECT sur machines. Bref, plus généralement, comment mixer facilement le contenu de plusieurs tables pour récupérer leur contenu ? Et pour ce que vous avez pu lire, est-ce que en matière d'architecture, ce que je fais semble correct?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 named_scope :overdue, :include => :machine, :conditions => [ "date_s < ?", Date.today], :order => "date_s DESC" named_scope :today, :include => :machine, :conditions => [ "date_s = ?", Date.today], :order => "date_s DESC" named_scope :other, :include => :machine, :conditions => [ "date_s > ?", Date.today], :order => "date_s DESC"
Merci d'avance.
Partager