Bonjour, Ma question concerne les "limitations" s'il y en des ORM (AR, datamapper, ...) utilisés avec Rails. Plus particulièrement je voulais savoir s'ils étaient bien adaptés pour des applications se basant sur un model assez complexe (plus de 8 entités métiers avec des liaisons N:N) sur lequel des recherches sont à faire en utilisant des critères d'un peu toutes les entités du model. Un exemple de model pourrait tout à fait être un annuaire d'une grosse boite avec des Business Unit contenant des services, avec des personnes ayant des fonctions dans les différents services etc.. La recherche de personnes se ferait alors à partir de critères de la BU, ou du service, ou encore à partir d'un nom, ou d'une fonction. Par exemple : * "je cherche la liste des chefs de Service qui s'appelle Paul". * "je cherche tous les developpeurs du service R&D bossant sur des technos web". * ... Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour) exécuter ce genre de requêtes sans tout avoir à faire à la main? Cette question fait partie à mon sens des questions à ce poser lors du choix de la techno à utiliser pour réaliser une appli. En java je sais qu'hibernate et son api Criteria aide beaucoup. Je voulais savoir ce qu'il en était coté Rails. Ou encore avoir un retour sur votre expérience concernant la mise en oeuvre de recherches en base un peu "touchies". Merci d'avance. Mickael
on 02.05.2008 19:32
on 04.05.2008 14:03
> La recherche de personnes se ferait alors à partir de critères de la BU, > ou > du service, ou encore à partir d'un nom, ou d'une fonction. > Par exemple : > * "je cherche la liste des chefs de Service qui s'appelle Paul". > * "je cherche tous les developpeurs du service R&D bossant sur des > technos > web". > Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour) > exécuter ce genre de requêtes sans tout avoir à faire à la main? > Merci d'avance. > > Mickael Michael, je crois qu'on cherche la même chose; j'ai trouvé ceci: http://wiki.rubyonrails.org/rails/pages/UnderstandingPolymorphicAssociations J'essaie de réorganiser mon data model pour les utiliser.
on 04.05.2008 14:25
Le 2 mai 2008 19:31, Mickael Gerard <mikarun@gmail.com> a écrit : > Avec les associations correctes, tu peux faire toutes les requêtes ou presque sans utiliser de SQL directement: Annuaire.find("MaBoite").services.find_all_by_fonction("Chef", :conditions => "name ='Paul'") Tu peux simplifier ces écritures en "étendant" des associations: Par exemple ajouter ca dans ton modele Annuaire: :has_many services do def chefs find_all_by_fonction("Chef") end end Te permet de simplifier la requete précédente par: Annuaire.find("MaBoite").services.chefs.find_by_name("Paul") etc. Plein d'autres astuces te permettent de t'affranchir du SQL dans 95% des cas. > Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour) > exécuter ce genre de requêtes sans tout avoir à faire à la main? > Pour résumé, oui -- Baptiste