Domanda

Sto cercando di eseguire una ricerca multi-colonna su un modello ed è un tag associato. Sto usando Metawhere e Acts-As-Tagable-On per questo. Fondamentalmente ho un modello con un titolo e un corpo che ha una certa quantità di tag con nomi. Ho provato a impostare questa query con Metawhere ma non restituisce mai alcun risultato quando provo a unirmi ai tag di un modello. Ho una variabile denominata "STR" che viene utilizzata per cercare un modello post con quanto segue ...

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

che genera il seguente SQL ...

=> "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}%'))"

Qualcuno può indicarmi nella giusta direzione con questo? Qualsiasi aiuto sarebbe molto apprezzato.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top