모델 및 관련 태그에 대해 다중 열 검색을 수행하려고합니다. 나는 metawhere를 사용하고 있으며, 이것을 위해 taggable-acts을 사용한다. 기본적으로 이름이있는 특정 양의 태그가있는 제목과 본문이있는 모델이 있습니다. metawhere를 사용하여이 쿼리를 설정하려고 시도했지만 모델의 태그에 조인 할 때 어떤 결과도 반환하지 않습니다. 나는 변수는 다음과 게시물 모델을 검색하는 데 사용되는 것 "STR"... 다음 SQL을 생성메타 위치가있는 태그 검색
Post.where(:title.matches % '#{str}%' | :body.matches % '#{str}%' | {:tags => [:name.matches % '#{str}%']}).joins(:tags)
...
는=> "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}%'))"
이 사람이 날 지점 수라는 이름의 한 이것과 함께 올바른 방향으로? 어떤 도움이라도 대단히 감사하겠습니다.
당신은이 쿼리에서 생성 된 SQL에 붙여 넣을 수 있습니다 (가정 연산자의 오버로드를 사용하도록 설정)? – idlefingers
# {}에서 str 변수를 감싸는 것을 잊어 버렸고 생성 된 sql을 초기 질문에 추가했습니다. – Raj