J'ai en fait deux questions. J'ai lu le guide des Rails et quelques autres articles, mais je n'ai pas été capable de traduire ce que j'ai lu en itinéraires de travail. J'ai une application qui permet le téléchargement d'images de plusieurs contextes différents. Je voudrais l'URI pour exprimer le contexte afin que les URIs suivantes accèdent à la même page:Comprendre les routes dans les rails
/images/upload
/photos/upload
Dans cet exemple, j'ai surchargé l'new_image_path
à utiliser upload
à des fins descriptives. J'ai l'override de travail, mais en utilisant :as
pour mapper des images aux photos ne semble fonctionner que dans un sens (avec :as => 'photos'
en place, les routes ne fonctionnent pas). Existe-t-il un moyen de faire pointer plusieurs itinéraires vers le même endroit? J'ai également plusieurs façons de télécharger des images/photos/etc. La méthode standard avec une seule image par formulaire ou une méthode par lots où l'utilisateur télécharge un fichier zip et cette archive est extraite et chacune de ses images est enregistrée.
Il semble que la manière la plus sémantique de le faire consiste à ajouter un composant gestionnaire à l'URI (par exemple /images/upload/batch
), mais je ne suis pas sûr de savoir comment gérer cela. Le chemin de routage par défaut semble assez général pour quelque chose qui ne serait requis que pour les images, mais je ne veux pas non plus être aussi spécifique avec un chemin nommé pour tout le bit. Quelle est la meilleure façon de faire quelque chose comme ça?
Merci.
Mise à jour: Sur la base de la réponse de jonnii à ma première question, je l'ai ajouté ce qui suit à mon dossier routes.rb:
map.resources :images, :path_names => { :new => 'upload' }
map.resources :photos, :controller => 'Images', :path_names => { :new => 'upload' }
Cela semble faire l'affaire pour me permettre d'utiliser /images/
et /photos/
de manière interchangeable.
Voir le 'routes.rb' que vous avez déjà aiderait à diagnostiquer. Je recommande également l'utilisation généreuse de 'rake routes' lorsque vous apportez des modifications. –