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

250
Vistas
Actualice los parámetros o redirija a los rieles de URL correctos

Relativamente nuevo en los rieles, por lo que tengo problemas para encontrar una solución para este problema.

Actualmente tiene una ruta: /test/testing/:id Donde una vez que un usuario llega a la ruta, encontrará un elemento en la base de datos con esa identificación específica y establecerá la URL en localhost:3000/test/testing/1-name-of-this-item

Sin embargo, si solo escribe manualmente esa URL, por ejemplo: localhost:3000/test/testing/1 , me gustaría que redirija a /test/testing/1-name-of-this-item O si hay alguna forma para cambiar los parámetros antes de cargar la página. Pero no estoy completamente seguro de cómo hacer esto.

¡Gracias por la ayuda!

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

0

Puedes probar dos formas de manejar esto

1: use la siguiente gema que construirá URL según el atributo que desee https://github.com/norman/friendly_id

2: anule el método to_param en su modelo y pase el atributo que le gustaría mostrar en la ruta URL

https://apidock.com/rails/ActiveRecord/Base/to_param

over 4 years ago · Santiago Trujillo Denunciar

0

Por su comentario anterior, supongo que tiene un modelo de Testing que tiene al menos una columna llamada id y una path de columna. Debido a que no mencionó cómo se genera la ruta, supondré que la columna se completa previamente y devuelve slugs como 1-name-of-this-item y que el número que antecede a la ruta siempre está sincronizado con la identificación del registro.

Además, supongo que tiene sus rutas configuradas correctamente y que /test es un espacio de nombres y /testing se define como resources :testing . Eso me hace suponer que Rails generó un path_helper como test_testing_path .

Si ese es el caso, entonces podría ser suficiente simplemente cambiar su método de controlador de show a esto:

 def show @testing = Testing.find(params[:id]) if @testing.path != params[:id] redirect_to test_testing_path(@testing.path) else respond_to do |format| format.html # show.html.erb format.json { render json: @testing } end end end
over 4 years ago · Santiago Trujillo Denunciar

0

Me lo imaginé; hay una gema llamada refracción que es un middleware que le permite modificar la URL antes de que la aplicación la procese, lo que funciona bien.

https://github.com/joshsusser/refracción

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