Todos alguna vez hemos tenido que escribir algo del tipo:

 map.resources :posts do |post|
   post.resources :comments
   post.resource :author
 end
 

Podriamos transformar estas rutas anidadas usando:

  • has_many para múltiples recursos anidados
  • has_one para un solo recurso anidado

Por tanto la refactorización quedaría:

map.resources :posts, :has_many => :comments, :has_one => :author

Un poco mas Dry ;-)