Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!