Rails спокойные пространства имен, ресурсы ... вопрос новичка - PullRequest
1 голос
/ 24 июля 2010

Я пытаюсь использовать вложенные контроллеры, которые имеют спокойный путь, так что я все организован и так далее. Вот копия моего rout.rb на данный момент:

 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' 

Правильно ли настроены мои маршруты для такой ссылки?

ОБНОВЛЕНИЕ: я должен добавить, что никакие данные не связаны с родительским контроллером "статуса". Он просто выступает в качестве заполнителя категории для остальных контроллеров, связанных со статусами, например: отчеты.

Ответы [ 2 ]

0 голосов
/ 24 июля 2010

Пространство имен не является ресурсом.

map.resources :statuses do |status|
  status.resources :reports
end

Кроме того, для вызова status_path требуется идентификатор.

status_path(:id => @status.id)

или

status_path(@status)

0 голосов
/ 24 июля 2010

Если вы хотите, чтобы / status переходил в контроллер состояния, это должен быть ресурс, а не пространство имен.Вы вкладываете ресурсы почти таким же образом:

map.resource :status do |status|
  status.resources :reports
end
...