2010-03-03 6 views
0

J'essaie de faire un itinéraire nommé 'have_many' d'autres routes nommées ici. Mais la façon dont je fais ça ne marche pas.Route nommée avec ressources imbriquées

Voici mon problème: J'ai plusieurs plates-formes auxquelles je veux accéder par /: nom_de_la_plateforme /. Cela fonctionne:

map.platform ':platform_name', 
       :controller => :platforms, 
       :action => :index, 
       :platform_name => /pc|ps2|ps3|wii|ds|psp|xbox360/ 

Mais j'ai aussi des jeux à l'intérieur de chaque plate-forme, que je veux faire référence par son nom, alors j'ai essayé:

map.platform ':platform_name', 
        :controller => :platforms, 
        :action => :index, 
        :platform_name => /pc|ps2|ps3|wii|ds|psp|xbox360/ do |platform| 

    platform.games ':game_name', 
        :controller => :games 
end 

Mais quand je fais cela, même la plate-forme itinéraire arrêter de travailler. Est-il possible d'avoir une route nommée à l'intérieur d'une autre route nommée? Je ne peux qu'imaginer un code sale pour y parvenir sans la relation has_many. Toute idée est la bienvenue :)

Répondre

1

Je ne sais pas si c'est ce que vous voulez, mais qu'en est-il de l'imbrication à travers 2 routes nommées?

+0

Oui, ça marche, mais les jeux auront plus de routes nommées à l'intérieur, comme les commentaires, les critiques ... n'y a-t-il pas un moyen plus propre peut-être? – Tiago

+1

Ensuite, je suggère d'utiliser RESTful-ressources de routage, jetez un oeil à http://guides.rubyonrails.org/routing.html. btw Jamis Buck dit: "Les ressources ne doivent jamais être imbriquées à plus d'un niveau de profondeur." - Ce qui est une bonne convention! – xijo

Questions connexes