Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

256
Vistas
pg_search + Rails: evita el redireccionamiento a la página con resultados de búsqueda si no hubiera ninguno de ellos

Agradezco una ayuda. Estoy usando Rails 4, Ruby 2.2.3 y PostgreSQL 9.6. Tengo un sitio web con búsqueda basada en pg_search y funciona perfectamente con múltiples modelos:

 /app/models/event.rb: multisearchable against: [:title, :subtitle]

Tanto los modelos de búsqueda como el controlador de búsqueda se configuran de manera muy simple mediante manuales oficiales.

 /app/controllers/results_controller.rb: class ResultsController < FrontendController def index @search_results = PgSearch.multisearch(params[:query]) end end

Y mi vista de resultados:

 /app/views/results/index.slim: .search-results-wrap - @search_results.each do |pg_search_document| #showing title of each result, etc.

Ahora necesito mejorarlo comprobando antes de redirigir a la página con resultados de búsqueda. ¿Hay algún resultado? Quiero decir, no tiene mucho sentido redirigir si no hay resultados y será más inteligente mostrar un mensaje flash (o algo así) "lo siento, no hay resultados" en la página actual.

¿Hay formas posibles de hacerlo?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Algo como esto?

 if (<your search function>).empty? flash.now[:notice] = "No, results" render '<your current search page>' else redirect_to '<your search results page>' end
over 4 years ago · Santiago Trujillo Denunciar

0

Recomiendo usar el enfoque modelo

Artículo.rb

 def self.search(query) if query.present? search_for(query) # takes you to your search method else # No query? Return all records, newest first. Article.all.order('updated_at DESC') end end pg_search_scope :search_for, ...

Índice de artículos o página de resultados de búsqueda de búsqueda

 - if @articles.present? # Show articles - else p No articles found. Use other queries

Controlador

 def index @articles = Article.search(params[:query])

La mejor práctica es decirle siempre al usuario si está obteniendo algún resultado o si cometió un error tipográfico o necesita buscar las cosas de manera diferente.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda