2016-09-28 151 views
0

This has been resolved i will post my answer shortlyRails 4從嵌套路由中路由以查看另一個嵌套路由上的頁面

下面我發佈了我的routes.rb以及與它們關聯的所有模型/關係。

我所試圖做的是後一個嵌套的客戶中現場展示頁面上的污物鏈接到PatrolReports(嵌套PatrolHits)..我不斷收到此錯誤:

ActionController::UrlGenerationError at /clients/1/sites/2 
No route matches {:action=>"show", :controller=>"patrol_hits/patrol_reports", :id=>"1", :patrol_hit_id=>nil} missing required keys: [:patrol_hit_id] 

當我使用在客戶端上該鏈接/ 1 /網站/ 1顯示頁面

<td><center><%= link_to "View", patrol_hit_patrol_report_path(@patrol_hit, patrol_report) %></center></td> 

這裏是我所有的網站路線:

# Nests Sites To Clients 
    resources :clients, controller: 'clients' do 
    resources :sites, controller: 'clients/sites', except: [:index] 
    end 

    # Nests PatrolHit To PatrolRoutes 
    resources :patrol_routes, controller: 'patrol_routes' do 
    resources :patrol_hits, controller: 'patrol_routes/patrol_hits', except: [:index] 
    end 

    # Nests PatrolReport to PatrolHits 
    resources :patrol_hits, controller: 'patrol_routes/patrol_hits', except: [:index] do 
    resources :patrol_reports, controller: 'patrol_hits/patrol_reports', except: [:index] 
    end 

這裏是我的模型和關係:

class Client < ApplicationRecord 
    has_many :sites, dependent: :destroy 
end 

class Site < ApplicationRecord 
    belongs_to :client 
    has_many :patrol_hits 
    has_many :patrol_reports, dependent: :destroy 
end 

class PatrolRoute < ApplicationRecord 
    has_many :patrol_hits, dependent: :destroy 
end 

class PatrolHit < ApplicationRecord 
    belongs_to :site 
    belongs_to :patrol_route 
    has_many :patrol_reports, dependent: :destroy 
end 

class PatrolReport < ApplicationRecord 
    belongs_to :patrol_hit 
    belongs_to :site 
    belongs_to :user 
end 

這裏是我的耙路線輸出:

     Prefix Verb URI Pattern             Controller#Action 

       client_sites POST /clients/:client_id/sites(.:format)       clients/sites#create 
       new_client_site GET /clients/:client_id/sites/new(.:format)      clients/sites#new 
      edit_client_site GET /clients/:client_id/sites/:id/edit(.:format)     clients/sites#edit 
        client_site GET /clients/:client_id/sites/:id(.:format)      clients/sites#show 
           PATCH /clients/:client_id/sites/:id(.:format)      clients/sites#update 
           PUT /clients/:client_id/sites/:id(.:format)      clients/sites#update 
           DELETE /clients/:client_id/sites/:id(.:format)      clients/sites#destroy 
         clients GET /clients(.:format)            clients#index 
           POST /clients(.:format)            clients#create 
        new_client GET /clients/new(.:format)           clients#new 
        edit_client GET /clients/:id/edit(.:format)         clients#edit 
         client GET /clients/:id(.:format)           clients#show 
           PATCH /clients/:id(.:format)           clients#update 
           PUT /clients/:id(.:format)           clients#update 
           DELETE /clients/:id(.:format)           clients#destroy 
    patrol_route_patrol_hits POST /patrol_routes/:patrol_route_id/patrol_hits(.:format)   patrol_routes/patrol_hits#create 
    new_patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/new(.:format)  patrol_routes/patrol_hits#new 
edit_patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/:id/edit(.:format) patrol_routes/patrol_hits#edit 
     patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format)  patrol_routes/patrol_hits#show 
           PATCH /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format)  patrol_routes/patrol_hits#update 
           PUT /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format)  patrol_routes/patrol_hits#update 
           DELETE /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format)  patrol_routes/patrol_hits#destroy 
       patrol_routes GET /patrol_routes(.:format)          patrol_routes#index 
           POST /patrol_routes(.:format)          patrol_routes#create 
      new_patrol_route GET /patrol_routes/new(.:format)         patrol_routes#new 
      edit_patrol_route GET /patrol_routes/:id/edit(.:format)        patrol_routes#edit 
       patrol_route GET /patrol_routes/:id(.:format)         patrol_routes#show 
           PATCH /patrol_routes/:id(.:format)         patrol_routes#update 
           PUT /patrol_routes/:id(.:format)         patrol_routes#update 
           DELETE /patrol_routes/:id(.:format)         patrol_routes#destroy 
    patrol_hit_patrol_reports POST /patrol_hits/:patrol_hit_id/patrol_reports(.:format)   patrol_hits/patrol_reports#create 
new_patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/new(.:format)  patrol_hits/patrol_reports#new 
edit_patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/:id/edit(.:format) patrol_hits/patrol_reports#edit 
    patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format)  patrol_hits/patrol_reports#show 
           PATCH /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format)  patrol_hits/patrol_reports#update 
           PUT /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format)  patrol_hits/patrol_reports#update 
           DELETE /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format)  patrol_hits/patrol_reports#destroy 
        patrol_hits POST /patrol_hits(.:format)           patrol_routes/patrol_hits#create 
       new_patrol_hit GET /patrol_hits/new(.:format)          patrol_routes/patrol_hits#new 
       edit_patrol_hit GET /patrol_hits/:id/edit(.:format)        patrol_routes/patrol_hits#edit 
        patrol_hit GET /patrol_hits/:id(.:format)          patrol_routes/patrol_hits#show 
           PATCH /patrol_hits/:id(.:format)          patrol_routes/patrol_hits#update 
           PUT /patrol_hits/:id(.:format)          patrol_routes/patrol_hits#update 
           DELETE /patrol_hits/:id(.:format)          patrol_routes/patrol_hits#destroy 
        static_home GET /static/home(.:format)           static#home 
       static_about GET /static/about(.:format)          static#about 
        static_help GET /static/help(.:format)           static#help 
     static_feature_request GET /static/feature_request(.:format)        static#feature_request 

請讓我知道如果你需要任何進一步的細節生病更樂意將它張貼和或放棄訪問我的回購

回答

1

patrol_hit_patrol_report_path(@patrol_hit, patrol_report)

看起來像patrol_report爲零。

+0

我其實只是解決了這個問題,我會在後幾篇文章中發表。感謝壽 –