2009-09-21 7 views
0

Supposons que je possède un modèle Book, qui contient de nombreux modèles de pages.Personnalisation de map.resources dans Rails

Le routage pour ce serait comme si:

map.resources :books do |book| 
    book.resources :pages 
end 

Après la valeur par défaut Rails sur ce qui conduit rapidement à des problèmes. Supposons que le livre # 1 a 10 pages. La première page dans le livre # 2 aura cette voie:

/books/2/pages/11 

Ce parcours assez mauvais, ce qui serait plus logique est la suivante:

/books/2/pages/1 

Ou encore ceci:

/books/2/1 

Existe-t-il un moyen d'utiliser map.resources, mais obtenez un résultat comme celui-ci:

/books/{book.id}/pages/{page.page_number} 

Répondre

1

En Août dit que vous devez utiliser le routage personnalisé pour cela. Mais pour les pages, vous n'avez pas besoin des routes de ressources complètes. Seul le show sera nécessaire.

donc quelque chose comme:

map.resources :books do |book| 
    book.page ':page_id', :action => 'index' 
end 

recensera les livres par défaut url pour afficher l'index, un livre et en ajoutant/les éditer. Mais aussi une page

/books/{book.id}/{page_id}

Quelles cartes à l'action d'index avec le paramètre "page_id". Vous n'avez qu'à afficher la page de livres appropriée;)

0

Vous pouvez également essayer l'option peu profonde pour votre routage!

Questions connexes