我有这样的路由:
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
上说明了这一点