2009-02-02 4 views
0

Si je tente la racine-URL de mon Rails-App, je reçois l'erreur suivante:NoMethodError: Utilisation de route nommée déjà définie dans l'appel de map.root

NoMethodError undefined method `[]' for :company_url:Symbol

# (part of the) content of my config/routes.rb 
ActionController::Routing::Routes.draw do |map| 
    map.company 'company', :controller => 'companies', :action => 'index' 
    map.root :company_url 
end 

Mais l'API-Doc pour ActionController :: Routing dit explicitement:

You can also specify an already-defined named route in your map.root call:

# In routes.rb 
map.new_session :controller => 'sessions', :action => 'new' 
map.root :new_session 

Qu'est-ce que je fais mal? :-)

Répondre

1

Vous n'êtes pas la cartographie de votre itinéraire (entreprise) à votre racine, vous êtes la cartographie et undefined route (company_url).

Je pense ce que vous confondez est les URL générées automatiquement créées par map.resources :company qui générerait un ensemble de routes * _url automagiquement. Vous utilisez map.company, une route nommée - pas map.resources.

+0

Cette ligne * _url ne devrait-elle pas être "automagiquement" si je vois la ligne suivante après avoir envoyé 'rake routes': société/compagnie {: controller => "companies",: action => "index"} ? – Javier

+0

Pas dans ce contexte, non. Il sera disponible dans les vues et les contrôleurs mais pas comme un symbole dans les routes.rb ni dans les modèles. – Otto

Questions connexes