rails redirect_to format html envía respuesta en js

Hice un before_filter en algunos de mis controladores para redirigir las búsquedas de palabras clave al controlador principal

Es muy sencillo:

before_filter :redirect_search def redirect_search redirect_to controller: "buildings", action: "index", format: "html" if params[:q].present? end 

Tenga en cuenta que la palabra clave_search se envía en formato “js”

Todo parece funcionar. Cuando miro el servidor, puedo ver que se ejecutan los edificios / índice y que la página se representa, pero no ocurre nada en el navegador.

En la consola del navegador veo esto

 GET http://localhost:3000/buildings.html 200 OK 

Tiene la página html en el cuerpo de respuesta

Esto significa que los edificios / índice se ejecuta como html pero luego se envía como js al navegador.

¿Por qué es así? ¿Cómo puedo arreglarlo?

Prueba con

 def redirect_search respond_to do |format| format.html {redirect_to buildings_path} if params[:q].present? format.js {render :js => "window.location.href='"+buildings_path+"'"} if params[:q].present? end end 

Gracias a la respuesta de Bachan, pude resolver mi problema de esta manera:

  def redirect_search render :js => "window.location.href='"+buildings_path+"'" if params[:q].present? end 

¡Gracias!

Creo que el problema está en la vista que está haciendo la solicitud

está enviando una solicitud JS (ajax), por lo que debe devolver un archivo js.erb y representar HTML nuevo usando js