with tutorial rails proyecto postgres new myapp crear conectar con ruby-on-rails postgresql ruby-on-rails-4 pg-search

ruby-on-rails - tutorial - ruby postgresql



¿Cómo implemento una búsqueda avanzada con operadores con pg_search? (1)

Implementé PgSearch en mi modelo de Node así:

include PgSearch pg_search_scope :node_search, against: [:name, :user_id, :circa], using: { tsearch: { any_word: true} }, :associated_against => { comments: [:message], user: [:first_name, :last_name, :email], memberships: [:relation] }

Y en mi controlador tengo esto:

if params[:search] @nodes = Node.node_search(params[:search]) end

Idealmente, lo que me gustaría poder hacer, sin embargo, es que alguien pueda escribir en la representación de texto (una bandera) de una de las asociaciones y tener el filtro de búsqueda solo en esa bandera.

Por ejemplo, decir: "nombre: Bouncing Ball", donde la búsqueda tendría lugar solo en la columna denominada name en el modelo de nodes . Aka ... buscaría todos los nodos con el nombre Bouncing Ball y no buscaría otras columnas o modelos, ni siquiera ninguna de las asociaciones.

Naturalmente, me gustaría poder hacer búsquedas como: owner: John Brown (que busca todos los nodos cuyo propietario / usuario first_name y last_name son John Brown), comment: Manhattan (que busca todos los nodos que tienen un comentario con el textee Manhattan en la copia, y así sucesivamente.

¿Cómo logro esto con PgSearch?


¿Ha intentado utilizar una combinación de " ámbitos de búsqueda dinámica " con algún procesamiento de controlador de la cadena de búsqueda?

name: Bob , analizar las columnas / relación y el valor de búsqueda luego pasarlo a un pg_search_scope con un bloque lambda?