Bonjour,
Je ne comprends pas pourquoi cette route fonctionne : ‘/users/1/edit’,
alors que pourtant le fichier routes.rb contient ceci :
ActionController::Routing::Routes.draw do |map|
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
end
Normalement, d’après la configuration du routage, l’écriture correcte de
cette route devrait être : ‘/users/1/edit’
Bizarrement, en l’ayant testé, elle fonctionne aussi (et donne le même
résultat).
Voici par exemple ce que contient l’action ‘edit’ (générée
automatiquement par un échafaudage sur Rails 2) :
GET /users/1/edit
def edit
@user = User.find(params[:id])
end
Il y a aussi une autre chose que je ne comprends pas. J’ai ajouté dans
un contrôleur cette action :
def listing
@tags = Tag.find(:all)
end
En fait, elle est identique à l’action index. J’ai aussi crée une vue
listing.html.erb. Tout est donc normal il me semble, mais lorsque je
charge la page 0.0.0.0:3000/tags/listing, voici le message d’erreur qui
s’affiche :
ActiveRecord::RecordNotFound in TagsController#show
Couldn’t find Tag with ID=listing
Juste pour essayer, j’ai aussi essayé de charger la page
0.0.0.0:3000/tags/ et là , l’action index est exécuté. Mais si par contre
j’ajoute 0.0.0.0:3000/tags/index, j’ai aussi une erreur qui s’affiche :
ActiveRecord::RecordNotFound in TagsController#show
Couldn’t find Tag with ID=index
Je n’arrive pas à les expliquer, car Rails semble confondre action et
id, alors que mon fichier routes.rb est (je crois) bien configuré (par
défaut).
Merci pour vos lumières 
je viens de tester et ça fonctionne.