【问题标题】:rails 3 nested routing errorrails 3嵌套路由错误
【发布时间】:2011-08-25 07:11:23
【问题描述】:

我的路线.rb

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

rake 路线说

$ 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=>"addresses", :action=>"new"} 提取的源代码(第 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 %>

我错过了什么?

托马斯

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

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

    new_territory_address_path(:territory_id => territory.id)
    

    【讨论】:

    • 你甚至可以只传递领土对象本身,Rails 会明白你的意思:new_territory_address_path(territory)
    • 好的,谢谢,为什么这个不起作用?领土路径(:领土ID =>领土.id)
    • 在这种情况下我还有一个问题。在我的区域显示视图中,我正在呈现一个地址表单,以便能够将地址添加到特定区域。因此,现在使用 region_path(territory) 工作,它说 ActionController::RoutingError in Territories#show No route matches {:controller=>"addresses"} 并说它不喜欢部分 这有什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    相关资源
    最近更新 更多