NoMethodError:在map.root调用中使用已定义的命名路由

时间:2009-02-02 09:16:11

标签: ruby-on-rails

如果我尝试使用Rails-App的Root-URL,我会收到以下错误:

  

NoMethodError未定义方法`[]'   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

但是ActionController :: Routing的API-Doc明确地说:

  

您也可以指定   已定义的命名路由   map.root call:

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

我做错了什么? : - )

1 个答案:

答案 0 :(得分:1)

您没有将您的指定路线(公司)映射到您的根,您是映射和未定义的路由(company_url)。

认为你感到困惑的是由map.resources :company创建的自动生成的URL,它会自动生成一组* _url路由。你正在使用map.company,一个命名路由 - 而不是map.resources。