2010-11-15 3 views
1

Rails 2.X nous avons:Différence entre: comme option dans le routage Rails 2 et Rails3?

map.resources :posts, :controller => 'posts', :as => 'articles' 

Cela crée essentiellement un alias pour nos routes messages. Par exemple, cela envoie "domain.com/articles/" à l'action d'index du contrôleur posts.

Dans Rails3, cependant, l'option: as se comporte différemment. Par exemple:

resources :posts, :controller => 'posts', :as => 'articles' 

définit un itinéraire nommé au lieu d'un alias, et va "domain.com/articles/" donne une erreur:

No route matches {:controller=>"posts"} 

Comment puis-je obtenir les anciens (Rails 2): comme comportement en utilisant le nouveau (Rails 3) api? PS: Ne me dites pas simplement de renommer mon contrôleur. Ce n'est pas une option pour moi.

Répondre

0

Vous pouvez accomplir ce même comportement en utilisant l'option path:

resources :posts, :path => '/articles/' 

Maintenant, par exemple /posts/new devient /articles/new.

0

De une lecture superficielle du guide RoR sur le routage, je pense que vous pourriez avoir besoin d'essayer:

resources :articles, :controller => "posts" 

(http://guides.rubyonrails.org/routing.html#specifying-a-controller -to-use)

Vous devrez peut-être également ajouter :as => "articles", mais cette aide nommée peut être déjà configurée puisque vous ajoutez des ressources :articles.

Questions connexes