Question

Je ne touche jamais à routes.rb au-delà de l'appel de map.root pour définir un itinéraire par défaut. Je me suis toujours contenté d'utiliser des URL de la forme ...

/controller/action/perhaps_an_id

et cela fonctionne bien.

Est-ce que cela fait de moi une mauvaise personne? Est-ce que je manque quelque chose de totalement génial?

Et si j'essaie d'adopter un design RESTful? Est-ce que cela voudrait dire que je devrais éditer routes.rb ou pourrais-je continuer à l'ignorer agréablement?

(J'ai essayé de lire ce sujet dans The Rails Way mais c'était insupportable.)

Était-ce utile?

La solution

Si vous générez vos ressources avec l'échafaudage par défaut, il inclura même le routage reposant pour vous dans routes.rb.

Si vous n'utilisez pas l'échafaudage, cela s'explique par les routes par défaut situées en bas, par défaut:

    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

Je vous ai conseillé de supprimer ces applications pour les applications de production et de vous assurer que seules les ressources devant être exposées sont exposées. Avec Rails 2.2, vous pouvez même limiter les méthodes RESTful à partir de map.resources:

map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]

Vous pouvez également faire des tas de choses intéressantes avec les ressources imbriquées, les routes nommées, etc. Ils ont beaucoup d'exemples dans la documentation ( http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255& nom = ressources )

Autres conseils

Vous pouvez également créer des itinéraires nommés personnalisés pour votre service marketing (par exemple, mycoolsite.com/free-trial), qui vont à des contrôleurs et actions spécifiques, etc.

Ryan Bates propose une série de screencasts sur certaines des choses intéressantes que vous pouvez faire avec les itinéraires: http: //railscasts.com/tags/14

Ne pas passer à la conception RESTful ne fait pas de vous une mauvaise personne et si vous sentez le besoin de changer, continuez à écrire vos applications de la même manière que 1.x.

La majorité des développeurs Rails a adopté REST et semble en être très heureux. Je ne pense pas qu'il soit nécessaire de répéter ici tous les arguments pro REST.

Vous devez ajouter une ligne par ressource à votre fichier de routes, par exemple:

map.resources :posts

Si vous deviez utiliser RESTful, il vous faudrait éditer le fichier routes.rb et ajouter vos ressources, par exemple,

.
map.resources :your_resource

ou si vous avez des ressources imbriquées,

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top