Ruby on rails 3 名称空间和rails路由

Ruby on rails 3 名称空间和rails路由,ruby-on-rails-3,routing,namespaces,urlhelper,Ruby On Rails 3,Routing,Namespaces,Urlhelper,我有这样的路线: namespace :folio do resources :portfolios do resources :portfolio_items do resources :images end end end 现在请不要因为堆得太深而解雇我。这是一个mongo db持久化的树状对象,这些级别都持久化在根对象中 让我困惑的是,生成的路由读起来像 folio_portfolio_portfolio_item 但是当

我有这样的路线:

  namespace :folio do
    resources :portfolios do
      resources :portfolio_items do
        resources :images
      end
    end
  end
现在请不要因为堆得太深而解雇我。这是一个mongo db持久化的树状对象,这些级别都持久化在根对象中

让我困惑的是,生成的路由读起来像

folio_portfolio_portfolio_item
但是当我向urlhelper请求url时

url_for [@portfolio, @portfolio_item]
我得到一个很好的例外告诉我

undefined method `hash_for_folio_portfolio_folio_portfolio_item_path' for #<Module:0x0000000492fc30>
要“只是”工作:)。这要求太高了吗

观察 这样的路由让我向前迈进了一步:

resources :folio_portfolio_items, :controller=>Folio::PortfolioItemsController do
虽然丑陋的地狱,它生成良好的网址。问题是,当我想去拜访他们中的一个时,我会

ActionController::RoutingError (uninitialized constant Folio::Folio):
不管这意味着什么

作为旁注,我认为发生这种情况很奇怪。我认为我的映射控制器到域是预期的一个


我创建了一个示例应用程序,在

上说明了这一点,为什么不为[@folio,@folio,@folio\u item]创建表单?folio只是一个名称空间(模块),而不是一个对象。问题是urlhelper看到两个对象ns::class1和ns::class2,并从中生成ns_class1_ns_class2_路径,而不是ns_class1_class2。我可以接受,如果我能生成与此匹配的路线……关于@Mauricio-我想知道[:folio,@folio,@folio,@folio_item]的形式_是否会有任何不同。@natedavisolds:这只是在组合中添加了另一个多余的folio。
ActionController::RoutingError (uninitialized constant Folio::Folio):