У меня есть такой маршрут:
namespace :folio do
resources :portfolios do
resources :portfolio_items do
resources :images
end
end
end
Теперь, пожалуйста, не подгоняйте меня из-за глубокой укладки.Это постоянный древовидный объект типа mongo db, и все уровни сохраняются в корневом объекте.
Меня удивляет тот факт, что сгенерированные маршруты читают что-то вроде
folio_portfolio_portfolio_item
Но когдаЯ спрашиваю URL-адрес от urlhelper
url_for [@portfolio, @portfolio_item]
Я получаю приятное исключение, сообщающее мне
undefined method `hash_for_folio_portfolio_folio_portfolio_item_path' for #<Module:0x0000000492fc30>
Видите второе "фолио" там?Есть идеи, как мне от этого избавиться?Обеспечение: url =>, к сожалению, не вариант, потому что это бы дублировало мои представления формы, а до этого я бы вообще отказался от пространства имен.Но нехотя так: это рельсовый двигатель, и я бы хотел избежать столкновений.
Итак, другими словами ...
Я хочу
= form_for [@portfolio, @portfolio_item] do |form|
to "просто работай :).Это слишком много, чтобы спросить?
Наблюдение такая маршрутизация выводит меня немного вперед:
resources :folio_portfolio_items, :controller=>Folio::PortfolioItemsController do
, хотя, черт возьми, ужасен, он генерирует хорошие URL.Проблема в том, что, когда я хочу посетить одного из них, я получаю
ActionController::RoutingError (uninitialized constant Folio::Folio):
Что бы это ни значило ...
Как член команды, я думаю, что это очень странно, что это вообще происходит.Я думаю, что мои контроллеры для сопоставления доменов ожидаемые ...
Я создал пример приложения, которое иллюстрирует это на https://github.com/janlimpens/testroutes