2010-07-06 4 views
1

Est-il possible de définir un paramètre d'espace de noms lors de la définition de mes itinéraires, comme ceci:routage Rails3: ressources avec espace de noms

resource :account, :namespace => :account do 
    resources :comments 
end 

Alors /account/comment appels Account::CommentsController au lieu de simplement CommentsController. Juste comme une note, le :namespace -option ci-dessus ne semble pas fonctionner.

Je peux bien sûr ajouter :controller => 'account/comments' aux ressources de commentaires, mais avec beaucoup de ressources imbriquées, ce n'est pas très DRY.

Yat-il un meilleur moyen?

Merci les gars - vous rock!

Répondre

5

Bon, après quelques recherches autour il me semble avoir trouvé une solution:

resource :account, :controller => 'account' do 
    scope :module => 'account' do 
     resources :comments 
     ... 
    end 
end 

Il en résulte:

/account/comments étant liée à Account::CommentsController tout en étant capable de acccess les CRUD-méthodes régulières en utilisant /account

+1

Est-ce la façon la plus propre de faire? Cela devrait être une autre façon. En tout cas, merci pour cela – Tony