8
votes

Plusieurs chemins pour une ressource rails

est-il possible d'envoyer plusieurs chemins à la même ressource dans des rails?

Exemple: Route des deux "/ foo-barres" et "/ foo_bars" à ressource: foo_bars


0 commentaires

3 Réponses :


2
votes

Ceci peut fonctionner:

resources :foo_bars
resources :foo_bars, path: "foo-bars", as: "foo-bars"


2 commentaires

Y a-t-il un moyen de le faire sans définir la ressource deux fois? Avec des ressources imbriquées, cela deviendrait vite encombrant


La réponse / commentaire de BOGOZO est probablement la meilleure façon de faire routage de ressources imbriquées dans votre cas



3
votes

Peut-être que vous préféreriez une redirection permanente à la place? Les navigateurs mettront la cache et éventuellement moins de problèmes de maintenance que vous aurez plus tard (1 path = 1 ressource est quelque chose que les programmeurs de rails prennent généralement pour acquis)

http://guides.rubyonrails.org/routing.html#redirection xxx


3 commentaires

Ce serait parfait, mais existe-t-il un moyen de le faire afin que les ressources imbriquées suivent également?


Je ne sais pas si vous pouvez le faire dans routes.rb , mais vous pouvez certainement le faire sur un filtre avant le contrôleur, vous pouvez demander sur un filtre avant si demande.Path.begins_with ? ("/ foo_bars /") Demandez une redirection et renvoyez false pour arrêter la chaîne de filtre, je vais développer ma réponse demain si vous ne savez pas comment le faire


Vous pouvez également utiliser des ressources avec redirection. Ressources: Articles Ressources: histoires, à: Redirection ('/ Articles')



-1
votes
resources :foo_bars, :foo-bars, controller: :foo_bars do
   # nested
end
This (not tested) should give you multiple sets of routes pointing to the same controller. 

0 commentaires