2011-08-25 160 views
1

我的routes.rb轨道3嵌套路由错误

TerritoryManagement::Application.routes.draw do 
    resources :addresses 
    resources :territories, :shallow => true do 
    resources :addresses 
    end 
end 

耙路线说

$ rake routes 
     addresses GET /addresses(.:format) 
{:action=>"index", :controller=>"addresses"} 
        POST /addresses(.:format) 
{:action=>"create", :controller=>"addresses"} 
     new_address GET /addresses/new(.:format) 
{:action=>"new", :controller=>"addresses"} 
    edit_address GET /addresses/:id/edit(.:format) 
{:action=>"edit", :controller=>"addresses"} 
      address GET /addresses/:id(.:format) 
{:action=>"show", :controller=>"addresses"} 
        PUT /addresses/:id(.:format) 
{:action=>"update", :controller=>"addresses"} 
        DELETE /addresses/:id(.:format) 
{:action=>"destroy", :controller=>"addresses"} 
    territory_addresses GET /territories/:territory_id/addresses(.:format) 
{:action=>"index", :controller=>"addresses"} 
        POST /territories/:territory_id/addresses(.:format) 
{:action=>"create", :controller=>"addresses"} 
new_territory_address GET /territories/:territory_id/addresses/new(.:format) 
{:action=>"new", :controller=>"addresses"} 
        GET /addresses/:id/edit(.:format) 
{:action=>"edit", :controller=>"addresses"} 
        GET /addresses/:id(.:format) 
{:action=>"show", :controller=>"addresses"} 
        PUT /addresses/:id(.:format) 
{:action=>"update", :controller=>"addresses"} 
        DELETE /addresses/:id(.:format) 
{:action=>"destroy", :controller=>"addresses"} 
     territories GET /territories(.:format) 
{:action=>"index", :controller=>"territories"} 
        POST /territories(.:format) 
{:action=>"create", :controller=>"territories"} 
    new_territory GET /territories/new(.:format) 
{:action=>"new", :controller=>"territories"} 
    edit_territory GET /territories/:id/edit(.:format) 
{:action=>"edit", :controller=>"territories"} 
     territory GET /territories/:id(.:format) 
{:action=>"show", :controller=>"territories"} 
        PUT /territories/:id(.:format) 
{:action=>"update", :controller=>"territories"} 
        DELETE /territories/:id(.:format) 
{:action=>"destroy", :controller=>"territories"} 

在我的领土名单上有链接

<td><%= link_to 'Show', new_territory_address_path %></td> 

我得到的错误

没有路线匹配{:controller =>“地址”:动作=> “新”} 提取的源(左右线#14):

11: <% @territories.each do |territory| %> 
12: <tr> 
13:  <td><%= territory.name %></td> 
14:  <td><%= link_to 'Show', new_territory_address_path %></td> 
15:  <td><%= link_to 'Delete', territory, :confirm => 'Are you sure?', :method => :delete %> 
16: </tr> 
17: <% end %> 

我缺少什么?

Thomas

回答

1

您是否尝试过将它传递给territory_id?注意它是如何包含在完整路线中的。

new_territory_address_path(:territory_id => territory.id) 
+0

你甚至可以只通过境内对象本身,Rails会知道你的意思是:'new_territory_address_path(境)' – skorks

+0

好的,谢谢,为什么没有这样一个工作? territory_path(:territory_id => territory.id) – Thomas

+0

这个工作虽然territory_path(领土) – Thomas