名称空间和rails路由

时间:2011-06-22 22:04:45

标签: ruby-on-rails-3 routing namespaces urlhelper

我有这样的路由:

  namespace :folio do
    resources :portfolios do
      resources :portfolio_items do
        resources :images
      end
    end
  end

现在请不要因为深层堆叠而激怒我。这是一个mongo db persisted tree like object,这些级别都保存在根对象中。

让我感到困惑的是,生成的路线读取的内容类似于

folio_portfolio_portfolio_item

但是当我从urlhelper请求网址时

url_for [@portfolio, @portfolio_item]

我告诉我一个很好的例外

undefined method `hash_for_folio_portfolio_folio_portfolio_item_path' for #<Module:0x0000000492fc30>

在那里看到第二个“对开”?知道怎么摆脱那个吗?提供:url =&gt;不幸的是,这不是一个选项,因为这会使我的表单视图重复三次,在此之前我宁愿完全放弃命名空间。但不情愿的是:这是一个rails引擎,我想避免冲突。

所以,换句话说......

我想要

= form_for [@portfolio, @portfolio_item] do |form|

到“只是”工作:)。这太难问了吗?

观察 这样的路由让我有点前进:

resources :folio_portfolio_items, :controller=>Folio::PortfolioItemsController do

虽然丑陋,但它会产生好的网址。问题是,当我想访问其中一个时,我得到了

ActionController::RoutingError (uninitialized constant Folio::Folio):

无论这意味着什么......

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

我创建了一个示例应用,在https://github.com/janlimpens/testroutes

上说明了这一点

0 个答案:

没有答案