Pregunta

Nunca toco route.rb más allá de llamar a map.root para establecer una ruta predeterminada. Siempre me he contentado con usar las URL del formulario ...

/controller/action/perhaps_an_id

y funciona bien.

¿Esto me hace una mala persona? ¿Me estoy perdiendo algo totalmente increíble?

¿Qué pasa si intento adoptar un diseño RESTful? ¿Significaría eso que tengo que editar route.rb o podría continuar ignorándolo gratamente?

(Intenté leer sobre este tema en The Rails Way, pero fue insoportable.)

¿Fue útil?

Solución

Si genera sus recursos con el andamio predeterminado, incluso incluirá el enrutamiento reparador para usted en route.rb.

Si no está utilizando el andamio, la razón por la que funciona es porque las rutas predeterminadas se encuentran en la parte inferior de manera predeterminada:

    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

He estado siguiendo que es una buena práctica eliminarlos para aplicaciones de producción y, en cambio, asegurarme de que solo estén expuestos los recursos que deben exponerse. Con Rails 2.2, incluso puede limitar los métodos RESTful de map.resources por:

map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]

También hay toneladas de cosas geniales que puedes hacer con recursos anidados, rutas con nombre, etc. Tienen muchos ejemplos en los documentos ( http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255& nombre = recursos )

Otros consejos

Es posible que también desee crear rutas con nombre personalizadas para su departamento de marketing (por ejemplo: mycoolsite.com/free-trial) que se dirijan a controladores y acciones específicas, etc.

Ryan Bates tiene una serie de capturas de pantalla que repasan algunas de las cosas que puedes hacer con las rutas: http: //railscasts.com/tags/14

No haber cambiado al diseño RESTful no te convierte en una mala persona y, si sientes que no es necesario cambiar, sigue escribiendo tus aplicaciones de la forma 1.x.

La mayoría de los desarrolladores de Rails ha adoptado REST y parece estar muy feliz por ello. No creo que sea necesario repetir todos los argumentos pro REST.

Es necesario agregar una línea por recurso a su archivo de rutas como:

map.resources :posts

Si tuvieras que ir a REST, sí, tendrías que editar route.rb y agregar tus recursos como,

map.resources :your_resource

o si tiene recursos anidados,

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top