Mieux comprendre l'architecture


#1

Bonjour,

Ma compréhension du framework Rails s’améliore de jours en jours mais lÃ
je
bloque sur un problème conceptuel, je vais illustré cela par un exemple
:

J’aimerais gérer un écran avec :

  • En haut un module de recherche se basant sur les noms de clients.
  • En dessous, une liste de pannes pour le client sélectionné(ou toutes
    les
    pannes si pas de sélection)

Au niveau rails :

  • J’ai donc 2 tables (clients et pannes) avec les 2 modèles Client et
    Panne

Comment bien gérer cela au niveau controlleur et vue, sachant que le
module de
recherche et basé sur une collection de clients(tous) et que le la liste
des
pannes est basée sur la jointure de clients et pannes ?

Ce qui m’intéresse c’est de savoir comment vous diposeriez vos
render_partial et
comment vous décrivez les méthodes de votre/vos controlleurs sachant que
le tout
(recherche avec autocomplete/affichage de la liste etc) est traité par
AJAX
(aucun request/response).

Je n’ai pas besoin que vous alliez vraiment dans le détail mais juste
que
quelqu’un puisse m’aiguiller parce que je suis en train de me fourvoyez
complétemement :slight_smile:

  • Tout d’abord est-ce que j’ai 2 controlleur (client et pannes) ou 1
    seul
    controlleur hybride (client_pannes)
  • Je ne dois pas avoir vraiment bien compris les render_partials et leur
    véritable utilisation…
  • A chaque fois que je cherche quelque chose sur le net je tombe sur un
    exemple
    tout simple (un model/un controlleur/une vue) avec un peu d’ajax mais
    jamais je
    ne suis tomber sur quelquechose qui fait intervenir plusieurs notions
    ensembles
    (ex: gestion de plusieurs model sur le même écran (données en provenance
    de
    tables différentes) et échange d’information en AJAX entre ces models.
    -J’ai pourtant bien saisi les concepts mais j’ai de la peine à passer la
    barre
    pour une utilisation professionnelle.

Désolé pour ce long post, mais si quelqu’un pouvais me guider vers des
sources
d’infos du type business patern évolués en rails, ça serait un gros
soulagement.
J’ai déjà le bouquin Agile Rails et Le Rails recipes mais ces 2 livres
s’arrêtent un peu là ou le vrai travail commence.

Merci d’avance pour votre aide.
Fabien


#2

Salut,

  • Tout d’abord est-ce que j’ai 2 controlleur (client et pannes) ou 1 seul
    controlleur hybride (client_pannes)
  • Je ne dois pas avoir vraiment bien compris les render_partials et leur
    véritable utilisation…
  • A chaque fois que je cherche quelque chose sur le net je tombe sur un exemple
    tout simple (un model/un controlleur/une vue) avec un peu d’ajax mais jamais je
    ne suis tomber sur quelquechose qui fait intervenir plusieurs notions ensembles
    (ex: gestion de plusieurs model sur le même écran (données en provenance de
    tables différentes) et échange d’information en AJAX entre ces models.

T’es pas obligé d’avoir un controleur par modèle, sauf si tu veux
faire du CRUD (ActiveRessources).

A priori :

infosdetonmetier=Client.find(:all, :conditions=>[“nom like %?%”,
params[‘q’],
:include=>[“pannes”])

Doit faire l’affaire pour remonter toutes les infos.

ou l’inverse :

Pannes.find( :include=>[“clients”])

Mais dans ce cas j’ai un doute sur les conditions appliquées à une
table “inclue”

Ton controleur gère les infosdetonmetier, et il y a un partial pour
afficher ton tableau de pannes.

Bien sur sur tu veux faire un ihm complète ici, avec filtres,
création, modif, c’est peut-être pas aussi simple…

Ciao’


#3

Mais dans ce cas j’ai un doute sur les conditions appliquées à une
table “inclue”

Ton controleur gère les infosdetonmetier, et il y a un partial pour
afficher ton tableau de pannes.

Bien sur sur tu veux faire un ihm complète ici, avec filtres,
création, modif, c’est peut-être pas aussi simple…

Ciao’

Hello,

Merci pour ton aide, en fait j’ai pu résoudre mon problème :
J’avais simplement un soucis d’incompatibilité entre mon
“text_field_auto_complete” et le pluging “AJAX Scaffold” que j’avais
utilisé
pour mes tests (listes des pannes)… cela posait plein de prob.
javascript.

Comme j’avais des erreurs que je n’arrivais pas à m’expliquer, j’étais
en train
de complétement remettre en doute ma manière de faire (boucle mentale).
Ca me
rassure dans un sens, parce qu’il me semblait correct de dégrouper mes
controlleur clients et pannes (CRUD), mais comme rien ne fonctionnait je
me suis
dis que je faisais une erreur dans l’architecture du code.

Mamamia, c’était bien plus simple, c’était pas ma faute :slight_smile: Désolé
d’avoir un peu
polué la liste, vous avez sans doute senti un peu de déprime dans mes
propos, ça
va mieux maintenant.

a+
Fabien