/ / Las rutas coincidentes en rails3 solo funcionan para la primera ruta: ruby-on-rails, ruby-on-rails-3, route

Las rutas coincidentes en rails3 solo funcionan para la primera ruta: ruby-on-rails, ruby-on-rails-3, route

Tengo estas dos rutas para las páginas estáticas que capturo en el controlador.

  match "/pages/:page" => "pages#aboutus"
match "/pages/:page" => "pages#team"

Pensé que funcionaría haciendo coincidir el "aboutus" o el "equipo", pero el enrutamiento parece funcionar solo buscando la primera entrada anterior.

Mi controlador se ve así:

  def aboutus
end

def team
end

¿Alguna idea de cómo puedo hacer que las rutas vayan a la entrada correcta del controlador?

¡Gracias!

Respuestas

5 para la respuesta № 1

No puede funcionar así.

Lo que escribió significa que la solicitud se envía a la pages controlador de aboutus acción con { :page } en params Lo que se supone que es tu :page ?

También, leer la guía de enrutamiento

Si tu quieres /pages/aboutus para redirigir a pages#aboutus y /pages/team/ a pages#team Haz eso:

match "/pages/aboutus" => "pages#aboutus"
match "/pages/team" => "pages#team"

2 para la respuesta № 2

La coincidencia va contra el nombre en el par nombre / valor. Podrías hacer algo como esto en su lugar:

match "/pages/about-us" => "pages#aboutus"
match "/pages/team" => "pages#team"

Sin embargo, si está buscando una solución global para manejar páginas estáticas, recomiendo highvoltage by thoughtbot:

https://github.com/thoughtbot/high_voltage


2 para la respuesta № 3

Esto no funcionará, lo siento. Está intentando usar la misma url para ir a dos lugares diferentes. El primer parámetro que se debe hacer es cómo se ve la url en el navegador y le ha dado exactamente la misma a las dos rutas.

Necesitas diferenciar las urls de alguna manera.

¿Estás tratando de hacer esto?

match "/pages/aboutus" => "pages#aboutus"
match "/pages/team" => "pages#team"