Pregunta

Tengo la siguiente línea en las rutas:

match 'area/:area_id/stores', :to => "stores_directory#index", :as => "stores_directory"

Tengo un formulario donde puedo seleccionar un área_id como:

<%= form_tag stores_directory_path, :method=>:get do %>

<select id="area_id" name="area_id">
....
</select>

¿Este anuncio es el Área_ID como un parámetro después?.Entonces, mi pregunta es: ¿Cómo lo haría agregarlo entre área y tiendas ?

¿Fue útil?

Solución

Veo una solución (no es la mejor tal vez, pero también bastante aceptable).Es posible escribir su propio middleware para manejar esta solicitud, pero esta es la forma en que creo (en este caso).

en su lugar, use js redirect

Esto podría escribirse como método (ejemplo usando jQuery):

$('#area_id option').click(function() {
  if (this.value) { // check value is not empty
    document.location.href = Routes.stores_directory_path({area_id: this.value})
  }
});

o usando options_for_select:

options = []
areas.each do |a|
  options << [a.to_s, a.id, {:onclick => "document.location.href = Routes.stores_directory_path({area_id: #{a.id}})"}]
end
options_for_select(options)

Aquí usé js-rutas gema para la URL agradable.

Espero que esto sea útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top