Я пытаюсь использовать вложенные контроллеры, которые имеют спокойную траекторию, так что я все организован и так. Вот копия моего routes.rb до сих пор:Rails успокоительные пространства имен, ресурсы ... вопрос новичка
map.root :controller => "dashboard"
map.namespace :tracking do |tracking|
tracking.resources :companies
end
map.namespace :status do |status|
status.resources :reports
end
Ссылка на ребенок пути контроллер работает нормально прямо сейчас,
<%= link_to "New Report", new_status_report_path, :title => "Add New Report" %>
Но моя проблема завязалась, когда я попытался сопоставить с только индексом родительского контроллера дорожка.
<%= link_to "Status Home", status_path, :title => "Status Home" %>
Я в конечном итоге получить это, когда я загрузить страницу со ссылкой:
undefined local variable or method `status_path'
Устанавливаются мои маршруты правильно для этого вида связи?
ОБНОВЛЕНИЕ: Я должен добавить, что никакие данные не связаны с родительским контроллером статуса. Он просто действует как заполнитель категории для остальных контроллеров, связанных со статусами, например: отчеты.
возможно я смущен от того, что пространство имен, но моя категория «статус» не имеет каких-либо данных, непосредственно связанных с ним. Для организации это просто категория-заполнитель. То, что я пытаюсь сделать, это просто создать целевую страницу для этой категории со ссылками на такие вещи, как отчеты и т. Д. – Dan
Ресурс не должен иметь связанных с ним данных. Если вы хотите, чтобы страница была на странице «/ status», вам нужно направить ее куда-нибудь. Если вы хотите сохранить свои маршруты спокойными, вы должны сделать StatusesController и сделать статус уникальным ресурсом, как указано выше. Затем/status перейдет к методу show StatusesController. С другой стороны, иногда приложения будут иметь PagesController для всех страниц, которые не подходят, как маршруты ресурсов, вы можете направить его как «map.status»/status »,: controller =>: pages,: action => : status' – mckeed