¿Parámetro URL en la URL en sí en lugar de después?en rieles
-
12-12-2019 - |
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 ?
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