2009-02-02 43 views
0

如果我盡我的Rails應用程序的根URL,我得到以下錯誤:NoMethodError:使用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 

但API督for ActionController :: Routing明確地說:

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 

我在做什麼錯? :-)

回答

1

您沒有將您的命名路線(公司)映射到您的根目錄,您正在映射和未定義路線(company_url)。

認爲你感到困惑的是由map.resources :company創建的自動生成的URL,它會自動生成一組* _url路由。您正在使用map.company,一種命名路線 - 不是map.resources。

+0

如果我在提交'rake routes'後看到下面一行,那麼* _url路由應該不是「automagically」: company/company {:controller =>「companies」,:action =>「index」} ? – Javier 2009-02-02 17:02:59