Question

J'essaie d'effectuer une recherche multi-colonnes sur un modèle et ses balises associées. J'utilise metawhere et actes comme taggable-on pour cela. Fondamentalement, j'ai un modèle avec un titre et un corps qui a une certaine quantité de balises avec des noms. J'ai essayé de définir cette requête avec Metawhere, mais cela ne renvoie jamais de résultats lorsque j'essaie de rejoindre les balises d'un modèle. J'ai une variable nommée "Str" qui est utilisée pour rechercher un modèle de poste avec les suivants ...

Post.where(:title.matches % '#{str}%' | :body.matches % '#{str}%' | {:tags => [:name.matches % '#{str}%']}).joins(:tags)

qui génère le SQL suivant ...

=> "SELECT `posts`.* FROM `posts` INNER JOIN `taggings` ON `posts`.`id` = `taggings`.`taggable_id` AND `taggings`.`taggable_type` = 'Post' INNER JOIN `tags` ON 'taggings.tagger_id IS NULL AND taggings.context = \\'tags\\'' WHERE (((`posts`.`title` LIKE '\#{str}%' OR `posts`.`body` LIKE '\#{str}%') OR `tags`.`name` LIKE '\#{str}%'))"

Quelqu'un peut-il me pointer dans la bonne direction avec cela? Toute aide serait grandement appréciée.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top