2012-08-05 13 views
5

Ich verwende Ransack, um ziemlich komplexe Suchen in einigen Modellen durchzuführen. Eines dieser Modelle enthält Freitext und verwendet das Attribut "acts_as_tagable", um die Wörter zu markieren.Durchsuchen des Tags mit Ransack

Ich versuche, eine Sammlung Selektor dieser Wörter zu erstellen, so dass Ransack alle Volltextdatensätze aus einer Teilmenge der Tags finden kann, die der Benutzer definieren kann.

Dies bringt mich fast da, aber wenn ich versuche, mehr als ein Wort zu wählen, es liefert keine Ergebnisse!

= f.select :note_in, @freetexts.tag_counts_on(:tags), {}, {:multiple => true} 

Antwort

0

Ransack ist nicht wirklich auf komplexe Suchen ausgerichtet. Es ist sehr wahrscheinlich, dass, wenn Sie genug durchforsten, Sie mit einem schwierigeren Problem enden, wenn Sie einen komplexen Komplex auswählen.

Für komplexe Such Sequel, vom selben Autor von ransack und viel besser orientiert, um komplexem searchs recomment Ich würde.

Darüber hinaus sind nach thes fädeln Sie am Ende einer Sackgasse sind: Ransack and acts-as-taggable-on issues

0

Ich bin kein Experte überhaupt, aber diese nicht-ransack Lösung könnte für diejenigen arbeiten, die mit der von Tags filtern müssen Akte-as-markierbare-on gem:

@search = MyModel.ransack(params[:q]) 
@result = @search.result(distinct: true).includes(:related_model) 
@result = @result.tagged_with(params[:tags].split(/\s*,\s*/)) if params[:tags].present? 
@result = @result.paginate(page: params[:page], per_page: 20) 

Dieser erwartet einen neuen: Tags param, die aus dem Anwendungsbereich des Ransack ist. Sie können die Ergebnisse filtern, die Ihnen Ransack bietet.

Verwandte Themen