2012-08-05 7 views
5

Estoy usando Ransack para realizar búsquedas bastante complejas a través de algunos modelos. Uno de estos modelos contiene texto libre y usa la gema acts_as_taggable para etiquetar las palabras.Buscando a través de la etiqueta usando Ransack

Estoy tratando de crear un selector de colecciones de estas palabras para que el registro pueda encontrar cualquiera de los registros de texto completo de un subconjunto de las etiquetas que el usuario pueda definir.

Esto me lleva casi hasta allí, pero si trato de elegir más de una palabra, ¡no devuelve ningún resultado!

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

Respuesta

0

Ransack no está realmente orientado a búsquedas complejas. Es muy probable que si acentúas el saqueo, terminas con un problema más difícil que si haces un complejo seleccionas.

Para la búsqueda compleja, recomiendo Sequel, del mismo autor del saqueo y mucho mejor orientado a búsquedas complejas.

Por otra parte, de acuerdo con los thes hilo que está en un callejón sin salida: Ransack and acts-as-taggable-on issues

0

No soy un experto en absoluto, pero esta solución no ransack podría trabajar para aquellos que necesitan para filtrar por etiquetas con el actos-as-taggable-joya en:

@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) 

Esta espera un nuevo parámetro: etiquetas que está fuera del alcance de Ransack. Puede usar para filtrar los resultados que Ransack le brinda.

Cuestiones relacionadas