2011-08-11 6 views
0

Je suis nouveau sur Rails. Quelqu'un peut-il me dire si ce qui suit est possible, et si vous, quelle serait la bonne entrée "route"?Rails Routes pour les services Web versionnés

J'ai un controller ItemController avec une action (index). Lorsque je l'ai configuré par défaut, il est accessible au http://my.app:3000/item, mais je veux que ce contrôleur (c'est-à-dire ce contrôleur uniquement, pas les autres contrôleurs) soit accessible via http://my.app:3000/api/v1/.

Merci x

Vanessa

Répondre

1

Set it up dans un espace de noms:

namespace :api do 
    namespace :v1 do 
    resources :items 
    end 
end 

Ensuite, vous devrez déplacer ce contrôleur dans app/controllers/api/v1/items_controller.rb et appeler la classe définie dans ce Api::V1::ItemsController.

Les chances sont que vous allez h ave une logique personnalisée que vous voulez pour les actions de l'API, de sorte que vous pouvez mettre cette logique dans un autre contrôleur autre que ApplicationController. Cela signifie que ce nouveau contrôleur héritera de Api::V1::BaseController plutôt que de ApplicationController. Sur une note de côté, je couvre ce genre de chose dans le chapitre "Designing a API" de mon livre, Rails 3 in Action.

+0

oui, je suis d'accord, c'est la meilleure approche – Anatoly