1

我正在尝试使用具有宁静路径的嵌套控制器,以便我有条理等等。到目前为止,这是我的 routes.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' 

我的路线是否为这种链接设置正确?

更新:我应该补充一点,没有数据与父“状态”控制器相关联。它仅充当与状态相关的其余控制器的类别占位符,例如:报告。

4

2 回答 2

0

如果您希望 /status 转到状态控制器,它应该是资源,而不是命名空间。您以几乎相同的方式嵌套资源:

map.resource :status do |status|
  status.resources :reports
end
于 2010-07-23T20:40:41.943 回答
0

命名空间不是资源。

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

此外,您对 status_path 的调用需要一个 ID。

status_path(:id => @status.id)

或者

status_path(@status)

于 2010-07-23T20:40:46.860 回答