2010-09-07 7 views
2

Disons que nous avons les pages suivantes clip/show/111 image/show/222 son/show/333 où 111222 et 333 sont les ID des différentes contributionsRuby on Rails, Comment rendre un contrôleur rendu une page différente sans redirection?

j'ai développé un nouveau contrôleur appelé « show "qui va détecter ID et rediriger vers le contrôleur droit show/show/111 redirigera vers clip/show/111 et ainsi de suite

ce que je veux est de rendre le clip de la page/show/111 sans rediriger, ce qui signifie que l'URL sur le navigateur montrera toujours "show/show/111" mais rendra en fait le "clip/show/111"

Comment pourrais-je faire ça?

Merci à tous Wa'el

+0

Je pense que vous avez obtenu ce dernier bit dans le mauvais sens ... << "show/show/111" mais en fait rendre le "show/clip/111 ">> devrait être <<" show/show/111 "mais en fait rendre le" clip/show/111 ">> – Chris

+0

Oui merci Chris, c'est changé maintenant. – wael34218

Répondre

0

Il ressemble à ce que vous êtes vraiment essayer de faire est de créer des alias pour certains de vos itinéraires, afin que vous puissiez accéder à la même fonctionnalité de différentes structures d'URL . Si c'est le cas, créer un contrôleur entier qui délègue tout son travail à un autre contrôleur serait une odeur de code (envie de fonctionnalité).

Ce que vous voulez probablement faire est de définir des routes supplémentaires pour "show /" qui réutilisent simplement le même contrôleur de clip. Ce serait accompli en faisant simplement ce qui suit:

# routes.rb 
# ... 
# For Rails 2 
map.resources "show", :controller => "clip" 

# For Rails 3 
resources "show", :controller => "clip" 
+0

Aussi, je sais que vous avez dit que vous ne vouliez pas rediriger, mais il vaut la peine de mentionner que le routeur Rails 3 vous permet de rediriger directement à partir du fichier routes.rb. Consultez http://guides.rubyonrails.org/routing.html#redirection pour plus d'informations. – Chris

+0

Je ne peux pas utiliser des ressources comme ça car les routes ne connaissent pas le type de contribution si c'était clip, image ..etc, Dans mon show controller je fais certaines requêtes pour connaitre le type d'ID passé et rend le controller/action en conséquence. – wael34218