J'ai quelques besoins spécifiques pour ma recherche et je suis intéressé à obtenir l'opinion des gens sur ce que l'approche de recherche a le plus de sens. Basé sur mon explication ci-dessous, recommanderiez-vous que j'utilise des requêtes SQL de base? Ou passer à une solution de recherche plus avancée, comme Sphinx?Rails - Que dois-je utiliser pour la recherche?
J'ai deux modèles que je recherche: les produits et les variétés.
produit has_many :varieties
variété belongs_to :product
J'ai besoin ma recherche de reconnaître la relation entre les produits et les variétés. Cependant, les variétés n'ont pas leur propre existence sur le site. Ainsi, lorsqu'un utilisateur recherche une variété dans le système, j'ai besoin de la recherche pour retourner la page de produit correspondante sur laquelle réside la variété. Par exemple, disons que le produit est une balle et que la variété est rebondissante. Si un utilisateur recherche "bouncy", je veux que la recherche retourne la vue balle/spectacle.
L'autre tweak implique les résultats. S'il n'y a qu'un résultat pour une recherche donnée, je veux afficher la page produit/spectacle. Cependant, s'il y a plusieurs résultats, je veux afficher la page produit/index, affichant les résultats multiples. Mon jeu de données est un univers assez limité, donc je pense qu'il sera assez commun que nous ayons un seul résultat.
Ce sont mes exigences. Puis-je satisfaire à ces exigences avec des requêtes et des conditions SQL standard? Ou recommanderiez-vous une approche de recherche plus avancée?
Merci!
Merci. Juste mis en application scoped_search et c'était rapide et facile. Des suggestions sur la façon de mettre en œuvre la logique de résultats que je veux atteindre? Si seulement un résultat -> produit/spectacle. Si multiple -> produit/index. Je pense que je peux ajouter un langage conditionnel au contrôleur de produit, mais je ne sais pas exactement comment le faire. – MikeH
Dans votre action d'index sur votre productions_controller: redirect_to: action => 'show' if @ products.length == 1 – hgmnz
Merci. Quand j'ai essayé cela, j'ai ceci: Impossible de trouver le produit avec ID = show. L'application essaie de m'envoyer à l'url:/products/show, au lieu de produits/id – MikeH